DIV CSS 佈局教程網

js 中對象的特性
編輯:JavaScript基礎知識     

用Object.definedproperties 一次性添加或修改多個屬性的特性和值。

 <script>
      var obj ={}
     Object.defineProperties(obj,{
         x:{value:1,writalbe:true,configurable:true,enumerable:true},
         y:{value:2,configurable:true}
     })
     console.log(obj.x)  //=>1
     console.log(obj.y)  //=>2
     console.log(Object.getOwnPropertyDescriptor(obj,"x"))//得到屬性的描述 value:1 writable:true configurable:true, enumerable:true
     console.log(Object.getOwnPropertyDescriptor(obj,"y"))        //    value:2 writable:false configurable:true, enumerable:false    
      obj.z=3        //這個z是通過對象字面量的方式創建的
     console.log(Object.getOwnPropertyDescriptor(obj,"z"))//所以所有的屬性特性都為true
 </script>

檢測對象是否是另一個對象的原型(或者處於原型鏈中)

 <script>
     var obj={
     }            //此處創建了一個空對象
     var obj1 =Object.create(obj)   //用object.create創建了一個新對象,把obj作為obj1的原型
     console.log(obj.isPrototypeOf(obj1))      //=> true  此時返回值就true,因obj是obj1的原型
     console.log(Object.prototype.isPrototypeOf(obj))//=>true 因為object.prototype是頂級對象,是對象原型上的原型
     console.log(Object.prototype.isPrototypeOf(obj1))//=>true  也是對象上的原型
 </script>

對象類class是一個標識對象類型的字符串

ECMAscript3和ECMAscript5都沒有定義此方法,可以通過頂級對象的toString()方法

js的內建對象都帶有toSting方法,所以要用一個CALL回調

代碼如下,對何標識對象類型的字符串:

 <script>
      function classof(obj){
          if(obj === null){
              return null
          }
          if(obj === undefined){
              return undefined
          }
          return Object.prototype.toString.call(obj).slice(8,-1)
      }
     var x = null;          //=>null
      var x = undefined;     //=>  undefined
      var x =true              //=>  boolean
      var x  = 1234;          //=>   number
      var x = "this is"       //=> string
      var x = new Array()      //=>  arry
      var x = new Date()      //=>    date
     console.log(classof(x))   
 </script>
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved