Maison  >  Article  >  interface Web  >  Caractéristiques des attributs de chaîne de prototype associatif dans les compétences JavaScript_javascript

Caractéristiques des attributs de chaîne de prototype associatif dans les compétences JavaScript_javascript

WBOY
WBOYoriginal
2016-05-16 15:15:451115parcourir

Attributs des données :

L'attribut data contient l'emplacement d'une valeur de données à partir de laquelle la valeur peut être lue et écrite.

4 caractéristiques comportementales décrites :

writable indique si la valeur de l'attribut peut être modifiée. La valeur par défaut est vraie

Enumerable indique si la propriété renvoyée via la boucle for in peut être énumérée.

configuralbe indique si l'attribut peut être supprimé et redéfini, et si sa configuration peut être modifiée.

value contient la valeur des données de cet attribut. Lors de la lecture des valeurs d'attribut, lisez à partir de cet emplacement.

Lors de l'écriture des valeurs d'attribut, enregistrez les nouvelles valeurs à cet emplacement. La valeur par défaut de cette fonctionnalité est 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>

Comment énumérer les propriétés ? Quelle est la différence entre les propriétés énumérées et les prototypes ?

Le code démo est le suivant :

<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>

Le contenu ci-dessus est la connaissance des caractéristiques des attributs de chaîne de prototype associées en JavaScript introduites par l'éditeur. J'espère qu'il vous sera utile.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn