JavaScript属性

来源:互联网 发布:淘宝卖家延迟收货时间 编辑:程序博客网 时间:2024/04/30 21:23

在JavaScript中,一个对象的属性可以分为自有属性和原型属性。

自有属性是指该属性被直接保存在一个对象的实例内,仅仅是指定的对象实例拥有该属性,对改属性的所有操作都必须通过该对象进行。

原型属性是指被定义在该对象的原型对象中的属性。


属性探测:一般使用in操作符或每个对象都拥有的hasOwnProperty()方法

区别是in操作符会检查自由属性和原型属性,只要给定属性存在即返回true。

而hasOwnProperty()是在给定属性存在且为自有属性才返回true,也就是只检查自有属性。

var person1 = {  name : 'zhuyun',};console.log('name' in person1);  //trueconsole.log(person1.hasOwnProperty('name'));  //trueconsole.log('toString' in person1);  //trueconsole.log('person1.hasOwnProperty('toString'));  //false
toString()方法是一个所有对象都有的原型属性,它其实是Object对象的属性。


下面是一个鉴别原型属性的方法

function hasPrototypeProperty(object, name){

  return name in object && !object.hasOwnProperty(name);

}

console.log(person1,'name');  //false

console.log(person1,'toString');  //true


如果某个属性in一个对象,但是对该属性用hasOwnProperty()返回false,那么这个属性就是原型属性。

0 0
原创粉丝点击