最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一種新的javascript對象創(chuàng)建方式Object.create()

 更新時間:2015年12月28日 17:16:56   作者:yupeng  
這篇文章主要介紹了一種新的javascript對象創(chuàng)建方式Object.create(),感興趣的小伙伴們可以參考一下

Object.create() 是什么?
Object.create(proto [, propertiesObject ]) 是E5中提出的一種新的對象創(chuàng)建方式,第一個參數(shù)是要繼承的原型,如果不是一個子函數(shù),可以傳一個null,第二個參數(shù)是對象的屬性描述符,這個參數(shù)是可選的。
例如: 

function Car (desc) {
  this.desc = desc;
  this.color = "red";
}
 
Car.prototype = {
  getInfo: function() {
   return 'A ' + this.color + ' ' + this.desc + '.';
  }
};
//instantiate object using the constructor function
var car = Object.create(Car.prototype);
car.color = "blue";
alert(car.getInfo());

結果為:A blue undefined.

1、propertiesObject 參數(shù)的詳細解釋:(默認都為false)
數(shù)據(jù)屬性:

  • writable:是否可任意寫
  • configurable:是否能夠刪除,是否能夠被修改
  • enumerable:是否能用 for in 枚舉
  • value:值

訪問屬性:

  • get(): 訪問
  • set(): 設置

2、例子:直接看例子就知道怎么用?!?/strong>

<!DOCTYPE html>
<html>
<head>
  <title>yupeng's document </title>
  <meta charset="utf-8"/>
</head>
<body>
  <script type="text/javascript">

    var obj = {

      a:function(){
        console.log(100)
      },
      b:function(){
        console.log(200)
      },
      c:function(){
        console.log(300)
      }

    }

    var newObj = {};

    newObj = Object.create(obj,{
      t1:{
        value:'yupeng',
        writable:true
      },
      bar: {
        configurable: false,
        get: function() { return bar; },
        set: function(value) { bar=value }
      }
      
    })

    console.log(newObj.a());
    console.log(newObj.t1);
    newObj.t1='yupeng1'
    console.log(newObj.t1);
    newObj.bar=201;
    console.log(newObj.bar)
    
    function Parent() { }
    var parent = new Parent();
    var child = Object.create(parent, {
       dataDescriptor: {
        value: "This property uses this string as its value.",
        writable: true,
        enumerable: true
       },
       accessorDescriptor: {
        get: function () { return "I am returning: " + accessorDescriptor; },
        set: function (val) { accessorDescriptor = val; },
        configurable: true
       }
      });

    child.accessorDescriptor = 'YUPENG';
    console.log(child.accessorDescriptor);



    var Car2 = function(){
      this.name = 'aaaaaa'
    } //this is an empty object, like {}
    Car2.prototype = {
     getInfo: function() {
      return 'A ' + this.color + ' ' + this.desc + '.';
     }
    };

    var newCar = new Car2();
     
    var car2 = Object.create(newCar, {
     //value properties
     color:  { writable: true, configurable:true, value: 'red' },
     //concrete desc value
     rawDesc: { writable: true, configurable:true, value: 'Porsche boxter' },
     // data properties (assigned using getters and setters)
     desc: { 
      configurable:true, 
      get: function ()   { return this.rawDesc.toUpperCase(); },
      set: function (value) { this.rawDesc = value.toLowerCase(); } 
     }
    }); 
    car2.color = 'blue';
    console.log(car2.getInfo());
    car2.desc = "XXXXXXXX";
    console.log(car2.getInfo());
    console.log(car2.name);



  </script>
</body>
</html>

結果為:
100
yupeng
yupeng1
201
I am returning: YUPENG
A blue PORSCHE BOXTER.
A blue XXXXXXXX.
aaaaaa

以上就是針對javascript一種新的對象創(chuàng)建方式Object.create()的詳細介紹,希望對大家的學習有所幫助。

相關文章

最新評論

广昌县| 宜川县| 清远市| 贵州省| 梁山县| 龙川县| 曲阳县| 德兴市| 偃师市| 潍坊市| 交城县| 盘山县| 泗洪县| 苗栗县| 汉川市| 邯郸市| 奉化市| 平远县| 赞皇县| 鄂伦春自治旗| 麻城市| 滦平县| 青神县| 马龙县| 石景山区| 黔东| 静安区| 泗洪县| 古蔺县| 武胜县| 集贤县| 常德市| 普洱| 台州市| 遂川县| 南丹县| 乌拉特中旗| 肇东市| 西平县| 岐山县| 福鼎市|