javascript通过new操作符构建一个对象的步骤

《Javascript高级程序设计》的解释:

  1. 创建一个对象
  2. 将构造函数的作用域赋给新对象(把新对象作为构造函数的调用上下文,也就是this的指向)
  3. 执行构造函数中的代码
  4. 返回这个新对象
  5. 如果在构造函数里边return了一个对象,这个对象就会取代默认的返回,那么new操作符实例化出来的东西就不再和构造函数以及其原型有关系了 就相当于工厂模式直接创建对象一样

基于第5点,我实在弄不明白 javascript高级程序设计里边 第六章创建对象 工厂模式和寄生构造函数模式有什么区别; 函数体里边的操作一毛一样,然后调用方式工厂是直接调用,寄生是new 操作, 但是由于构造函数里边显示声明了return 又变得和工厂没什么本质上的区别, 什么鬼。。。

《你不知道的javascript 上卷》的解释,个人觉得更加正确

  1. 创建一个全新的对象
  2. 这个新对象会被执行[[Prototype]]连接
  3. 这个新对象会被绑定到函数调用的this
  4. 如果函数没有返回其他对象,那么new表达式中的函数调用会自动返回这个新对象

最新文章

  1. 刚看到的感觉会用的到 收藏一下 常用的iOS第三方资源 (转)
  2. Apache配置代理服务器的方法(2)
  3. JavaScript闭包示例
  4. C,C++经典(程序、错误程序)
  5. Angular - - ngChange、ngChecked、ngClick、ngDblclick
  6. 实现全局同一编码:Filter
  7. iOS7 CookBook精彩瞬间(一)property、selector细节、__unused
  8. c语言之单链表的创建及排序
  9. C# 霍尼韦尔扫码枪扫码打印
  10. render函数(转)
  11. 深入理解JS防抖与节流
  12. jmeter之接口测试(http接口测试)
  13. php之二叉树
  14. SQL 2008 R2 收缩日志,不用修改简单模式
  15. 基于CAS操作的非阻塞算法
  16. 22LINQ查询运算符返回IEnumerable<T>实例汇总
  17. OpenERP Client Error
  18. 数据挖掘算法以及其实现zz
  19. 20155233 2016-2017-2 《Java程序设计》第9周学习总结
  20. beego学习笔记(4):开发文档阅读(5)

热门文章

  1. 面试题:如何在不使用临时变量temp的情况下交换两个整数的值?
  2. 一步一步学习Unity3d学习笔记系1.3 英雄联盟服务器集群架构猜想
  3. MyEclipse导入Hibernate出现Path must include project and resource;/project name
  4. vue笔记二
  5. 使用C++11封装线程池ThreadPool
  6. RabbitMQ一
  7. UltraISO 9.6.5.3237
  8. react-native 项目实战 -- 新闻客户端(2) -- 完善TabBar
  9. JavaScript 判断浏览器及版本
  10. HTML5中两种方法实现客户端存储数据