JS创建对象的方式
2019-10-09 本文已影响0人
高嘉俊
JS创建对象的方式
一、通过对象字面量表示法
二:通过new和构造函数Object()、String()等
三:用自定义构造函数来初始化新对象
一、通过对象字面量表示法
![](https://img.haomeiwen.com/i4280123/877803ce2ab9d9b2.png)
对象字面量也可以先创建,再添加属性和方法。
![](https://img.haomeiwen.com/i4280123/746c06f039eb317a.png)
二:通过new和构造函数Object()、String()等。
这里的函数称做构造函数(constructor)。
![](https://img.haomeiwen.com/i4280123/aee825283e02eae9.png)
如果构造函数无参数,括号则不是必需的。
因此可以采用下面的形式重写上面的两行代码:
![](https://img.haomeiwen.com/i4280123/4e32df6aaf77187f.png)
方式三:用自定义构造函数来初始化新对象。
![](https://img.haomeiwen.com/i4280123/ae674e7b57482604.png)
changeName() 函数 name 的值赋给 person 的 lastname 属性。
new 关键字到底做了什么呢?JS引擎做的工作就是下面这样
![](https://img.haomeiwen.com/i4280123/e704c0ea2c07ca44.png)
1.首先创建一个新对象
2.把obj的__proto__ 指向Person的原型对象prototype,此时便建立了obj对象的原型链:obj->Person.prototype->Object.prototype->null
3.在obj对象的执行空间调用Person函数并传递参数“王方”。 相当于var result = obj.Person("王方")。当这句执行完之后,obj便产生了属性name并赋值为"王方"。
4.判断返回值,如果无返回值或者返回一个非对象值,就将obj返回,否则讲返回值作为新对象返回
四:工厂模式
![](https://img.haomeiwen.com/i4280123/cd0591ac54e87fc9.png)
五、原型模式