如何向原型添加属性(javascript)
以下函数如何向原型添加属性(javascript),javascript,oop,Javascript,Oop,以下函数Phone()创建一个原型并Phone.prototype.screenSize=6添加screenSize属性 function Phone() { this.operatingSystem = 'Android'; } Phone.prototype.screenSize = 6; 然后,如果我们创建了一个新对象myPhone,并检查它是否包含screenSize属性,它将返回false,尽管该属性是在创建对象之前添加的 const myPhone = new Phone()
Phone()
创建一个原型并Phone.prototype.screenSize=6
添加screenSize
属性
function Phone() {
this.operatingSystem = 'Android';
}
Phone.prototype.screenSize = 6;
然后,如果我们创建了一个新对象myPhone
,并检查它是否包含screenSize
属性,它将返回false,尽管该属性是在创建对象之前添加的
const myPhone = new Phone();
const inherited = myPhone.hasOwnProperty('screenSize');
console.log(inherited);
// false
为什么不返回true以及如何使其返回true向原型添加属性类型只会向原型添加“own”属性,而不会向实例添加属性
Phone.prototype.screenSize = 6;
Phone.prototype.hasOwnProperty('screenSize'); // true
const myPhone = new Phone();
myPhone.hasOwnProperty('screenSize'); // false
// instances will not own the property.
为什么hasOwnProperty
不返回true
因为它不是myPhone
的自己的属性,所以它是从prototype对象继承的
如何检查原型链
使用操作符中的
。“它为什么不返回true”hasOwnProperty
检查对象,而不是原型链。如何检查原型链?它不是新对象的属性,而是原型的属性。“如何使其返回true”您的目标是什么?是否要确保hasOwnProperty
返回true?然后需要将属性附加到实例。是否要验证该属性是否存在?然后使用。这似乎有点像,<代码>屏幕大小
不是像操作系统
一样成为链条的一部分吗@弗拉兹