Heim  >  Artikel  >  Web-Frontend  >  Merkmale assoziativer Prototypkettenattribute in JavaScript_Javascript-Kenntnissen

Merkmale assoziativer Prototypkettenattribute in JavaScript_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 15:15:451114Durchsuche

Datenattribute:

Das Datenattribut enthält den Speicherort eines Datenwerts, von dem aus der Wert gelesen und geschrieben werden kann.

4 beschriebene Verhaltensmerkmale:

beschreibbar gibt an, ob der Wert des Attributs geändert werden kann. Der Standardwert ist true

Enumerable gibt an, ob die durch die for in-Schleife zurückgegebene Eigenschaft aufgezählt werden kann.

configuralbe gibt an, ob das Attribut gelöscht und neu definiert werden kann und ob seine Konfiguration geändert werden kann.

Wert enthält den Datenwert dieses Attributs. Lesen Sie beim Lesen von Attributwerten von dieser Position aus.

Speichern Sie beim Schreiben von Attributwerten die neuen Werte an diesem Ort. Der Standardwert für diese Funktion ist true.

<script>
function Foo(){}
Foo.prototype.z = 
var obj = new Foo()
obj.x = 
alert("x" in obj) //=>true x是obj对象的自有属性
alert("z" in obj) //=>true z是obj原型上继承来看属性
//hasOwnProperty 必须是对象上的自有的属性才返回true
alert(obj.hasOwnProperty("x")) //true x是obj对象上的自有属性
alert(obj.hasOwnProperty("z")) //false z是obj原型上继承来的属性,不是他的私有属性
alert(Foo.prototype.hasOwnProperty("z")) //=>true z是原型上自有的属性,所以返回true
alert(Object.prototype.hasOwnProperty("toString"))//=>toString 是顶级对象上的自有属性,所以返回true
//prpertyisEnumeralbe 的意思是必是对象上的自有属性而且要以是枚举的,但是对象的可枚举属性Enumeralbe是true,才能返回true
alert(obj.propertyIsEnumerable("x")) //true x是obj对象上可枚举的属性
alert(obj.propertyIsEnumerable("z")) //false z是obj原型上的属性,不是自有属性,则不可以枚举
alert(Foo.prototype.propertyIsEnumerable("z")) //true x是原型上的自有属性,所以可以枚举
</script>

Wie werden Eigenschaften aufgezählt? Was ist der Unterschied zwischen aufgezählten Eigenschaften und Prototypen?

Der Democode lautet wie folgt:

<script>
function Foo(){}
Foo.prototype.age = 
var obj = new Foo()
obj.name = "ziksang"
obj.addr = "上海"
obj.telephone = 
for(var p in obj){ //使用FOR IN 可以枚举出自身的属性和原型上的属性
console.log(p)
}
console.log(Object.keys(obj)) //使用Object.keys(obj)只可以枚举Obj对象上自身的属性
console.log(Object.getOwnPropertyNames(obj)) //Object.getOwnPropertyNames(obj)是列出Ojb对象上自身的属性名,与枚举不相关,但是又类似枚举,大家要注意区分
</script>

Bei dem oben genannten Inhalt handelt es sich um das vom Herausgeber eingeführte Wissen über die zugehörigen Eigenschaften der Prototypkettenattribute. Ich hoffe, es wird Ihnen hilfreich sein.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn