hasOwnPropertyを()メソッド
使用hasOwnPropertyを()メソッドプロパティはまだ、この例ではプロトタイプに存在存在を検出することができる(Objectから継承されます)。指定された属性では、オブジェクトにのみ存在する場合ときでは、trueを返します。
function Person(){
}
Person.prototype.name = "Nicholas";
Person.prototype.age = 29;
Person.prototype.job = "Software Engineer";
Person.prototype.sayName = function(){
alert(this.name);
};
var person1 = new Person();
var person2 = new Person();
console.log(person1.hasOwnProperty("name")); //false
person1.name = "Greg";
console.log(person1.name); //"Greg"——来自实例
console.log(person1.hasOwnProperty("name")); //true
console.log(person2.name); //"Nicholas"——来自原型
console.log(person2.hasOwnProperty("name")); //false
delete person1.name;
console.log(person1.name); //"Nicholas"——来自原型
console.log(person1.hasOwnProperty("name")); //false
オペレータで
オペレータに:単独で、またはのためのインループで使用。単独で使用される場合、所与の性質にかかわらずプロパティは試作例に存在するかどうか、オブジェクトにオペレータによってアクセスすることができるならば、それがtrueを返します。
function Person(){
}
Person.prototype.name = "Nicholas";
Person.prototype.age = 29;
Person.prototype.job = "Software Engineer";
Person.prototype.sayName = function(){
alert(this.name);
};
var person1 = new Person();
var person2 = new Person();
console.log(person1.hasOwnProperty("name")); //false
console.log("name" in person1); //true
person1.name = "Greg";
console.log(person1.name); //"Greg" ——来自实例
console.log(person1.hasOwnProperty("name")); //true
console.log("name" in person1); //true
console.log(person2.name); //"Nicholas" ——来自原型
console.log(person2.hasOwnProperty("name")); //false
console.log("name" in person2); //true
delete person1.name;
console.log(person1.name); //"Nicholas" ——来自原型
console.log(person1.hasOwnProperty("name")); //false
console.log("name" in person1); //true
プロパティはPERSON1に「名前」を呼び出して、まだインスタンスに存在するプロトタイプに存在しているのにかかわらず、常にtrueを返します