扫码关注官方订阅号
我有几个疑问,希望能得到指点: 1,第一个undefined,this难道指的不是t2本身吗? 2,为什么t3.prototype.attr会是orange?
闭关修行中......
首先明确一点,t1,t2,t3都只是函数,不是一个对象实例,没有attr属性。 t3的原型指向了t2的实例,所以t3.prototype.attr就是“orange”
其实构造函数和普通的函数没有任何区别,只是调用方式不一样而已。构造函数使用new调用,调用时,会执行下面几个步骤: (参考《js高级程序设计》p145) 1. 创建一个新对象 2. 将构造函数的作用域指向这个对象(即this值) 3. 执行构造函数 4. 返回这个新对象
所以这个新对象上就是天t3.prototype, 在构造函数里设置了实例属性attr,其值就是“orange”.
构造函数里定义的this指向他的实例
你没new啊
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
首先明确一点,t1,t2,t3都只是函数,不是一个对象实例,没有attr属性。
t3的原型指向了t2的实例,所以t3.prototype.attr就是“orange”
其实构造函数和普通的函数没有任何区别,只是调用方式不一样而已。构造函数使用new调用,调用时,会执行下面几个步骤: (参考《js高级程序设计》p145)
1. 创建一个新对象
2. 将构造函数的作用域指向这个对象(即this值)
3. 执行构造函数
4. 返回这个新对象
所以这个新对象上就是天t3.prototype, 在构造函数里设置了实例属性attr,其值就是“orange”.
构造函数里定义的this指向他的实例
你没new啊