JavaScript 对象的三个属性

来源:互联网 发布:linux中echo e 编辑:程序博客网 时间:2024/05/18 02:08

1.原型属性 prototype

      原型属性非常重要以至于我们通常称之为原型;

     对象的创建有两种方法,1)通过new创建对象,这时prototype作为它的原型,2)通过Object.create()创建对象,第一个参数作为他的原型。

   检测对象的原型 Object.getPrototypeOf() (* Script 5)  o.constructor.prototype; 可是通过Object.create()创建的对象的constructor属性指向的是Object,所以一般contructor属性的prototype不一定是对象的真实原型。

    可是通过isPrototypeOf()来判断是否是对象的原型,类似于instanceof。

2.类属性

   通过类属性区分对象的类(自定义类除外),其实就是调用toString 方法,为了调用准确一般使用Object.prototype.toString.call(o);

 

3.可扩展性

    javascript分为以下几种状态: 可扩展 ===object.preventExtensions()===>不可扩展(isExtensible())===object.seal()====>不可配置(isSealed()检测)==Object.freeze()===>冻结(isFrozen()检测)

    JavaScript的内置对象和自定义对象都是课扩展的,对象可扩展就是可以向对象添加属性,删除属性等等。

  •     不可扩展其实就是不能向对象添加新的属性。

           *可扩展性仅仅影响到本对象的可扩展性,其原型的可扩展性是不受影响的,通过原型依然可以添加属性,其也会继承原型添加的属性。

  •       不可配置就是在对象不可扩展的基础上,已有的属性不可删除或者配置。
  •         冻结是在不可配置的基础上,使已有数据属性设置为只读,不过有setter方法的属性依然可以通过setter方法进行更改。

 

   

 

  

    

0 0