原型继承-什么时候需要设置'prototype.constructor'属性
prototypal inheritance - When is it necessary to set the 'prototype.constructor' property of a class in Javascript?
可能重复:
Javascript构造函数属性的意义是什么?
在developer.mozilla.org上的Javascript文档中,关于继承的主题,有一个示例
// inherit Person
Student.prototype = new Person();
// correct the constructor pointer because it points to Person
Student.prototype.constructor = Student;
我想知道为什么要在这里更新原型的构造函数属性?
每个函数都有一个prototype
属性(即使您没有定义它(,prototype
对象只有一个属性constructor
(指向函数本身(。因此,在你做了Student.prototype = new Person();
之后,prototype
的constructor
属性指向Person
函数,所以你需要重置它。
你不应该认为prototype.constructor
是神奇的东西,它只是一个指向函数的指针。即使您跳过第Student.prototype.constructor = Student;
行,第new Student();
行也会正常工作。
constructor
属性很有用,例如在以下情况下(当您需要克隆对象,但不知道是什么函数创建了它(:
var st = new Student();
...
var st2 = st.constructor();
因此最好确保CCD_ 12是正确的。
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 可以't使用JavaScript获取width属性
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- “new”关键字是在构造对象时自动设置“constructor”属性的唯一方法吗
- 在Javascript中,为什么constructor属性指向原型链中最基本的构造函数?
- 将this.constructor与构造函数调用一起使用以访问静态属性时是否存在兼容性问题
- 结合使用JS的Prototype和Constructor属性
- When是实际使用的对象的“.constructor”属性
- 原型继承-什么时候需要设置'prototype.constructor'属性