可以't在分配原型后访问构造函数
Can't access constructor after assigning prototype
有人能解释一下为什么会发生这种情况吗
function Human(name) {
this.name = name;
}
var george = new Human('George');
alert(george.constructor === Human)
这是事实。而
var monkey = {
hair: true,
feeds: 'bananas',
breathes: 'air'
};
function Human(name) {
this.name = name;
}
Human.prototype = monkey;
var george = new Human('George');
alert(george.constructor === Human)
这显示错误的
constructor
继承自prototype
。因为您将Human
的prototype
更改为monkey
,即Object
,所以george.constructor()
现在将返回Object {}
而不是Human {}
。
值得注意的是,instanceof
将保持不变:
var george = new Human('George');
george.constructor === Human; // true
george instanceof Human; // true
Human.prototype = {};
var george = new Human('George');
george.constructor === Human; // false
george instanceof Human; // true
相关文章:
- 如何从对象的原型方法访问JavaScript对象属性
- 使用方括号访问插件原型函数
- 为什么原型需要通过实例访问
- 使用绑定后访问原型
- 如何维护对原型对象的访问
- 创建所有原型函数均可访问的局部变量
- 访问原型函数中的私有成员
- 在OPP JS中,您可以从构造函数访问原型函数内部声明的方法
- 访问javascript对象的原型
- 是否可以从 javascript 中的原型方法访问私有类属性
- 为什么允许通过原型继承访问另一个闭包范围内的私有变量
- 如何在使用构造函数进行原型设计时访问实例
- 使用原型访问局部变量
- 通过 Javascript 中的原型访问 Date 对象的方法
- 无法从 javascript 中的原型访问构造函数的值
- 从原型访问对象属性
- JS:原型-访问正确的实例属性
- 使用原型访问对象属性
- JS中的原型:访问我们尚未派生的父方法
- 使用原型访问类