作为创建对象的几种模式之一,构造函数用的非常之多,相比于工厂模式来看看new做了些啥?
对比可以发现,构造函数:
- 没有显示创建对象
- 将属性和方法赋给this对象
- 没有显示return创建的新对象
- 创建实例使用new操作符
再来看看new做了些啥?
- 创建一个新对象
- this指向新对象
- 返回新对象
新对象:
工厂模式:显示创建,显示返回
构造函数:
var foo1 = { 'proto': Foo.prototype };(这是md的通病吗,两条下划线没法正确显示)
this:
工厂模式:指向创建的新对象obj
构造函数:
动态指向foo1,Foo.apply(foo1, arguments);
return值:
工厂模式:return obj
构造函数:return foo1
注意:构造函数默认返回值为新对象,如果显示返回一个引用类型,则返回值为引用类型,如果返回简单类型则忽略,返回值仍为新对象
返回值为{country: 'China'}
有不是很明白原型,原型链的,查看:js原型和原型链
评论 (1 )
最新评论
好