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.