[]オブジェクト指向のJavaScript:オペレータにhasOwnPropertyを()メソッド

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を返します

公開された10元の記事 ウォンの賞賛1 ビュー295

おすすめ

転載: blog.csdn.net/AAABingBing/article/details/104221244