js的new到底干了啥 -
2024-09-07 16:37:57
javascript通过new操作符构建一个对象的步骤
《Javascript高级程序设计》的解释:
- 创建一个对象
- 将构造函数的作用域赋给新对象(把新对象作为构造函数的调用上下文,也就是this的指向)
- 执行构造函数中的代码
- 返回这个新对象
- 如果在构造函数里边return了一个对象,这个对象就会取代默认的返回,那么new操作符实例化出来的东西就不再和构造函数以及其原型有关系了 就相当于工厂模式直接创建对象一样
基于第5点,我实在弄不明白 javascript高级程序设计里边 第六章创建对象 工厂模式和寄生构造函数模式有什么区别; 函数体里边的操作一毛一样,然后调用方式工厂是直接调用,寄生是new 操作, 但是由于构造函数里边显示声明了return 又变得和工厂没什么本质上的区别, 什么鬼。。。
《你不知道的javascript 上卷》的解释,个人觉得更加正确
- 创建一个全新的对象
- 这个新对象会被执行[[Prototype]]连接
- 这个新对象会被绑定到函数调用的this
- 如果函数没有返回其他对象,那么new表达式中的函数调用会自动返回这个新对象
最新文章
- 刚看到的感觉会用的到 收藏一下 常用的iOS第三方资源 (转)
- Apache配置代理服务器的方法(2)
- JavaScript闭包示例
- C,C++经典(程序、错误程序)
- Angular - - ngChange、ngChecked、ngClick、ngDblclick
- 实现全局同一编码:Filter
- iOS7 CookBook精彩瞬间(一)property、selector细节、__unused
- c语言之单链表的创建及排序
- C# 霍尼韦尔扫码枪扫码打印
- render函数(转)
- 深入理解JS防抖与节流
- jmeter之接口测试(http接口测试)
- php之二叉树
- SQL 2008 R2 收缩日志,不用修改简单模式
- 基于CAS操作的非阻塞算法
- 22LINQ查询运算符返回IEnumerable<;T>;实例汇总
- OpenERP Client Error
- 数据挖掘算法以及其实现zz
- 20155233 2016-2017-2 《Java程序设计》第9周学习总结
- beego学习笔记(4):开发文档阅读(5)
热门文章
- 面试题:如何在不使用临时变量temp的情况下交换两个整数的值?
- 一步一步学习Unity3d学习笔记系1.3 英雄联盟服务器集群架构猜想
- MyEclipse导入Hibernate出现Path must include project and resource;/project name
- vue笔记二
- 使用C++11封装线程池ThreadPool
- RabbitMQ一
- UltraISO 9.6.5.3237
- react-native 项目实战 -- 新闻客户端(2) -- 完善TabBar
- JavaScript 判断浏览器及版本
- HTML5中两种方法实现客户端存储数据