最新资讯当前位置:鸿宇娱乐 > 最新资讯 > >

鸿宇娱乐平台:JavaScript中关联原型链属性特性

  

[js原型属性,属性特性]JavaScript中关联原型链属性特性

  

数据属性:  

  

数据属性包含一个数据值的位置,在这个位置可以读取和写入值。

  

  

4个描述的行为特性:  

  

writable 表示能否修改属性的值。默认为true  

  

Enumerable 表示能否过过for in循环返回属性是否可以枚举。

  

  

configuralbe 表示是否能过来delete删除属性从来重新定义属性,能否修改其配置。

  

  

value 包含这个属性的数据值。读取属性值的时候,从这个位置读取。

  

  

写入属性值的时候,把新值保存在这个位置。这个特性的默认值为true。

  

  
  
  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是原型上的自有属性,所以可以枚举  
  
  

如何枚举属性,枚举属性对于原型又有什么区别?  

  

演示代码如下:  

  
  
  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对象上自身的属性名,与枚举不相关,但是又类似枚举,大家要注意区分  
  
  

以上内容是小编给大家介绍的JavaScript中关联原型链属性特性的相关知识,希望对大家有所帮助。

  

(责任编辑:admin)

上一篇:鸿宇娱乐:Extjs4 Treegrid 使用心得分享(经验篇)

下一篇:Chrome扩展页面动态绑定JS事件提示错误

推荐内容

客户服务热线

010-400-12345

在线客服