ECMAScript学习笔记(六)——对象的创建
栏目: JavaScript · 发布时间: 6年前
内容简介:JavaScript高级程序设计的第六章。创建ECMAScript对象的一百种方法。除了之前记录过的直接new一个Object然后添加对象的方法,还有对象字面量的方法。ECMAScript还有一百种方法创建一个对象。嗯。
面向对象程序设计
JavaScript高级程序设计的第六章。
创建ECMAScript对象的一百种方法。
创建对象的一百种方法。
除了之前记录过的直接new一个Object然后添加对象的方法,还有对象字面量的方法。ECMAScript还有一百种方法创建一个对象。嗯。
使用Object构造函数和对象字面量的方法创建对象,会产生很多重复代码嗯,并且无法知道对象的类型。
工厂模式
function createPerson(name, age, job) { var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function() { alert(this.name); }; return o; } var person1 = createPerson("Nicholas", 29, "Software Engineer"); var person2 = createPerson("Greg", 27, "Doctor");
工厂模式能够解决Object构造函数和对象字面量会产生的大量重复代码的问题,但是却无法解决对象识别的问题。我们无法知道一个对象的类型。
构造函数模式
function Person(name, age, job) { this.name = name; this.age = age; this.job = job; this.sayName = function() { alert(this.name); }; } var person1 = new Person("Nicholas", 29, "Software Engineer"); var person2 = new Person("Greg", 27, "Doctor");
Person()中的代码,没有显式的创建对象,直接将属性和方法赋给了this对象,也没有return语句。
按照惯例,构造函数始终都应该以一个大写字母开头。
要创建Person的实例,就需要使用new操作符。以这种方式调用构造函数会经历四个步骤:
(1) 创建一个新对象
(2) 将构造函数的作用域赋给新对象.this指向了这个新对象
(3) 执行构造函数中的代码
(4) 返回新对象
person1和person2分别保存着Person的一个不同的实例。这两个对象都有一个constructor属性,这个属性指向Person。
person1.contructor == Person; person1 instanceof object; person1 instanceof Person;
创建自定义的构造函数,意味着将来可以将它的实例标识为一种特定的类型。
对于这种构建方法,有以下几个特点。
1.将构造函数当做函数
构造函数和普通的函数是一样的。只不过用new操作符来调用的时候,就会变成一个构造函数了。
2.构造函数的问题
构造函数,会使类型的每个方法都要在每个实例上重新创建一遍。(如上述示例中的sayName方法)
所以,每个实例所拥有的方法,是不同的实例。
于是,可以这样创建一个对象:
function Person(name, age, job) { this.name = name; this.age = age; this.job = job; this.sayName = sayName; } function sayName() { alert(this.name); }
但是这样子,就在全局作用域中创建了一个,只有Person对象才能调用的方法。
十分恶心。于是,这些问题是可以通过原型模式处理掉的嗯。
原型模式
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- JavaScript对象与创建对象的方式
- 【9】JavaScript 面向对象高级——对象创建模式
- JS学习笔记(第六章)(面向对象之创建对象)
- JavaScript基础学习——面向对象(对象创建之工厂模式)
- 创建对象、原型、原型链
- Javascript创建对象方式总结
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
社交网站界面设计
Christian Crumlish、Erin Malone / 樊旺斌、师蓉 / 机械工业出版社 / 2010-9-1 / 69.00元
《社交网站界面设计》提供100多种模式、原则以及最佳实践,并针对在设计社交网站时经常遇到的问题给出明确建议。本书将提供给你培养用户交互习惯和构建社区最具价值的参考。 本书作者将与你分享难得的经验,教会你平衡各种不同的因素,并与你的用户共同构建和谐健康的网络社区。 本书教会你 掌握创建任何网站时都会用到的原则 学习基本设计模式,以便向现有的网站中添加新的社交组件 学会在......一起来看看 《社交网站界面设计》 这本书的介绍吧!