ECMAScript学习笔记(六)——对象的创建
栏目: JavaScript · 发布时间: 7年前
内容简介: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创建对象方式总结
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法详解(卷1)——算法基础
[美]蒂姆·拉夫加登(Tim Roughgarden) / 徐波 / 人民邮电出版社 / 2019-1-1 / 49
算法是计算机科学领域最重要的基石之一。算法是程序的灵魂,只有掌握了算法,才能轻松地驾驭程序开发。 算法详解系列图书共有4卷,本书是第1卷——算法基础。本书共有6章,主要介绍了4个主题,它们分别是渐进性分析和大O表示法、分治算法和主方法、随机化算法以及排序和选择。附录A和附录B简单介绍了数据归纳法和离散概率的相关知识。本书的每一章均有小测验、章末习题和编程题,这为读者的自我检查以及进一步学习提......一起来看看 《算法详解(卷1)——算法基础》 这本书的介绍吧!