谈烂了的话题,构造函数new到底做了啥?不明白的过来看看

原创 yuci 随笔 js 204阅读 2018-04-04 23:09:00 举报

作为创建对象的几种模式之一,构造函数用的非常之多,相比于工厂模式来看看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 )
最新评论