我自己总结的new操作流程
1. 创建一个对象
2. Constructor 连接object 原型链
3. Constructor的 this 指向调用的地方
4. 返回对象
代码实现:
function objectFactory() {
var obj = new Object(),
Constructor = [].shift.call(arguments);
obj.__proto__ = Constructor.prototype;
var ret = Constructor.apply(obj, arguments);
return typeof ret === 'object' ? ret : obj;
}
var ret = Constructor.apply(obj, arguments);
/**
* 解释如下 如果这个函数直接了对象
*
*/
function Otaku (name, age) {
this.strength = 60;
this.age = age;
return {
name: name,
habit: 'Games'
}
}
var person = new Otaku('Kevin', '18');
console.log(person.name) // Kevin
console.log(person.habit) // Games
console.log(person.strength) // undefined
console.log(person.age) // undefined
2021-03-10 理解 new 操作符
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 在声明复杂类型的变量(如函数)时,我们可以通过构造函数的方式进行声明。如:声明一个函数 或者通过构造函数的方式新建...
- 概述 在我的上一篇文章《理解RxJava(一)基本流程源码分析》中,通过Observable.create().s...
- 我们知道map操作符是Rxjava中很常见的一个操作符,它可以实现单类型转换,那么它的这个转换内部原理是怎么实现呢...
- 先上一个关于隐式类型转换的例子 Rational1和Rational2唯一的区别是构造函数的explicit,如果...