Javascript构造函数和原型问题
Javascript constructor and prototype issue
我有以下代码,我很困惑为什么当我定义属性'name'的原型时,它出现为'40'而不是'fred'?javascript内部发生了什么?这似乎是一个简单的问题,但我很困惑。谢谢!
function Product(id){
this.id = id
this.name = id + 20
}
Product.prototype.name = 'fred';
var p = new Product(20);
console.log(p.name);
因为你做了this.name = id + 20
。
p.name
将首先在实例中查找name
属性,如果没有找到,则尝试在原型中查找。
function Product(id){
this.id = id
}
Product.prototype.name = 'fred';
var p = new Product(20);
console.log(p.name); // then it will be fred
相关文章:
- 使用setInterval调用原型函数时出现问题
- 基本对象/原型语法问题
- Javascript继承的问题&基类原型
- JavaScript 将数组推送到类原型问题
- 是否存在替换Javascript构造函数的问题'原型,而不是添加到原型中
- Javascript和原型继承问题
- 实时Magento网站上的原型JS问题
- Magento - 原型.js和jQuery问题 - 添加到购物车按钮
- 使用函数原型的 JavaScript 继承问题
- 对象的价值和原型问题
- Javascript原型继承问题
- 原型遗传的敲除问题
- Javascript:使用原型函数时出现问题
- 选择器原型等库中的“这个”问题
- 这个原型缓冲解码有什么问题
- JS/jQuery 原型设计问题,可能的范围问题
- JavaScript原型,调用函数时出现问题
- node.js中的继承问题:试图覆盖子类的原型时出现赋值错误
- 原型继承的新手-Can'找不到Undefined变量的问题
- javascript的问题"原型"在书签.我需要图书馆吗?