`

javascript”面向对象编程”- 1万物皆对象

阅读更多

      javascript几乎成了如今web开发人员必学必会的一门语言,但很多人却只停在了一些表单验证等基础操作层面上,在面向对象语言大行其道的当下,我们需要去学习javascript的面向对象的知识,以便更好的掌握javascript、为深入理解各种脚本框架打好基础。

      javascript和java、C#等语言一样也具有面向对象的一些特征,但细比较的时候,会发现这些特征并不是真正的面向对象,很多地方都是利用对象本身来模拟面向对象,所以认为javascript不能算是面向对象编程语言,而是基于对象的语言。

      在javascript中真的是万物皆对象,new出来的东西是对象,方法是对象,连类也都是对象。下面分别来看一下对象、方法和类的对象特征。

1.拿内置的Date来看一下吧

var time = new Date();
var timeString = time.getFullYear() + "-" +
                 time.getMonth() + "-" +
                 time.getDate() + " " +
                 time.getHours() + ":" +
                 time.getMinutes() + ":" +
                 time.getSeconds();
document.write(timeString);

      通过 time来操作其所引用的Date对象,可以方便的调用Date的对象所包含的一系列getXX()方法来获取年月日时分秒等信息。
      可以再看一下String

var username = new String("hello world");
document.write(username.length);

      变量username引用了new出来的字符串对象,通过username访问字符串对象的length属性。

2.方法也是对象

function hello() {
    alert("hello");
};
var helloRef = hello;
helloRef();

      hello是一个方法,helloRef是一个引用了hello方法的变量,helloRef和hello一样都指向了相同的方法对象。也就意味着helloRef也可以执行,helloRef()。同理也可以写出以下代码。

var helloRef = function() {
    alert("hello");
};
helloRef();

      function(){alert(“hello”)}是一个匿名方法,当然也是对象,用helloRef变量引用该方法对象后,可以通过helloRef来调用方法。

3.那么类呢?当然类也是对象,在javascript中,不像C#或java那样有class关键字用来创建类,而是直接使用方法的关键字来创建类或者叫模拟类。

function Person(username, age) {
    this.Name = username;
    this.Age = age;
    this.Introduce = function() {
        alert("我叫" + this.Name + ",今年" + this.Age + "岁了。");
    };
};
var person1 = new Person("张三", 20);
person1.Introduce();

      以上创建了一个Person类型,Person带有构造参数username和age,通过创建的Person对象可以调用Person所包含的方法Introduce。下面对代码做一些修改。

function Person(username, age) {
    this.Name = username;
    this.Age = age;
    this.Introduce = function() {
        alert("我叫" + this.Name + ",今年" + this.Age + "岁了。");
    };
};
var PersonClass = Person;
var person1 = new PersonClass("张三", 20);
person1.Introduce();

      重新声明新的变量PersonClass并引用Person类,PersonClass和Person都指向了原来的Person所引用的类,所以也可以用PersonClass来创建对象。

以上的几个例子可能不是很恰当,但也可以一窥javascript中万物皆对象。

下一节详细的谈一谈javascript中的对象。

分享到:
评论

相关推荐

    NumberToTextConverter:面向对象编程

    【NumberToTextConverter:面向对象编程】是一种使用JavaScript实现的编程技术,主要目的是将数字转换成对应的中文大写或口头表述的文字形式。在JavaScript中,面向对象编程(OOP)是一种常见的编程范式,它基于类和...

    轻松学会javascript

    6. **面向对象编程**:构造函数、原型链、封装和继承的概念。 7. **ES6新特性**:箭头函数、模板字符串、let和const、解构赋值、类和模块等。 8. **错误处理**:理解并使用try...catch结构来捕获和处理运行时错误。 ...

    html 和 javascript 课件 lesson3万和

    6. **面向对象编程**:理解JavaScript的构造函数、原型和实例化,以及如何创建自定义对象。 通过学习这些概念并结合实际项目练习,你将能够掌握HTML和JavaScript的基本应用,并为更高级的Web开发打下坚实基础。在...

    java编程题.doc

    【编程题解析】 1. 创建`Circle`类: - `Circle`类包含一个私有浮点型变量`radius`,表示圆的半径。...以上是针对给定文件中Java编程题的详细解析,涵盖了面向对象编程、字符串处理、数学计算等多个知识点。

    python基础 接近10万字+web全栈

    4. **面向对象编程(OOP)**: - 类(Class):定义了对象的属性和行为。 - 对象(Object):类的实例。 - 继承(Inheritance):子类继承父类的属性和方法。 - 封装(Encapsulation):隐藏对象的具体实现细节。 - 多态...

    中美 IT 培训 C# Asp.net 全套笔记1

    C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及数据结构和常用算法,学习单件模式、...

    JAVA-How to Program-Paul Deitel_Harvey Deitel_9th Edith

    2. **类和对象**:理解面向对象编程的核心概念,如封装、继承和多态性,并学会创建和使用类。 3. **数组和集合框架**:掌握不同类型的数组操作,以及如何使用ArrayList、LinkedList、HashSet和HashMap等集合类。 4...

    Pro TypeScript with Steve Fenton 2018 2版

    - **接口与类**:接口用于定义对象的结构,类则支持面向对象编程。 - **泛型**:支持编写更加灵活的函数、接口和类,允许类型参数的使用。 #### 七、代码组织 - **命名空间与模块**:用于组织代码,避免全局命名...

    值类型与引用类型理论内容.part01.rar

    课程名称 课程内容 培训目的 C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及...

    值类型与引用类型理论内容.part05.rar

    课程名称 课程内容 培训目的 C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及...

    基于水仙花数的各种语言1W次性能比较,包括C++,.Net 4.5,.Net Core,.Net 5,Java,Python

    C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不仅支持过程化编程,也支持面向对象编程的程序设计语言。C++以其高效性和灵活性著称,尤其适合系统编程和高性能计算。 .NET 4.5 是微软开发的一个应用程序...

    高效前端:Web高效编程与优化实践_机械工业出版社; 第1版 (2018年1月1日) 完整版-未加密

    0.2不等于0.3 203Effective前端20:明白WebAssembly与程序编译 209Effective前端21:理解JS与多线程 221Effective前端22:学会JS与面向对象 231Effective前端23:了解SQL 248Effective前端24:学习常用的前端算法与...

    边用边学javascrip(rar)

    6. **面向对象编程**:类、继承、封装和多态等概念。 7. **ES6及更高版本的新特性**:如箭头函数、模板字符串、Promise、Async/Await等。 8. **前端框架应用**:如React、Vue.js或Angular等,它们是基于JavaScript的...

    JAVA最全的学习资料

    - **类与对象**:理解面向对象编程的基础,包括类的定义、对象的创建、封装、继承、多态等概念。 - **异常处理**:了解如何使用try-catch-finally语句来捕获和处理程序运行时可能出现的错误。 - **字符串处理**:...

    2020计算机技能高考模拟卷.pdf

    - C++是C语言的继承,增加面向对象编程等特性。 5. 存储与文件系统 - HDD代表硬盘驱动器,SATA代表串行高级技术附件,IDE代表集成驱动电子设备。 - FDDI代表光纤分布式数据接口,是一种光纤网络技术。 6. 图像...

    js金额小写转大写脚本

    Java则是一种完全独立于JavaScript的面向对象的编程语言,常用于服务器端开发。虽然JavaScript在前端和后端都有应用,但FTP下载程序更可能使用Java的FTP库,如`Apache Commons Net`,因为Java在系统级别的操作和文件...

Global site tag (gtag.js) - Google Analytics