国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > JS > 正文

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

2024-05-06 16:27:02
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了一種新的javascript對(duì)象創(chuàng)建方式Object.create(),感興趣的小伙伴們可以參考一下
 

Object.create() 是什么?
Object.create(proto [, propertiesObject ]) 是E5中提出的一種新的對(duì)象創(chuàng)建方式,第一個(gè)參數(shù)是要繼承的原型,如果不是一個(gè)子函數(shù),可以傳一個(gè)null,第二個(gè)參數(shù)是對(duì)象的屬性描述符,這個(gè)參數(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 functionvar car = Object.create(Car.prototype);car.color = "blue";alert(car.getInfo());

結(jié)果為:A blue undefined.

1、propertiesObject 參數(shù)的詳細(xì)解釋?zhuān)海J(rèn)都為false)
數(shù)據(jù)屬性: 

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

訪(fǎng)問(wèn)屬性:

  • get(): 訪(fǎng)問(wèn)
  • set(): 設(shè)置

2、例子:直接看例子就知道怎么用。 

<!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>

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

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



注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平阴县| 镇江市| 侯马市| 体育| 宝兴县| 陇南市| 蒙自县| 仪征市| 蒙自县| 衡东县| 曲靖市| 城固县| 芒康县| 南丹县| 湖北省| 木里| 策勒县| 武平县| 聂拉木县| 青海省| 鹤庆县| 南皮县| 横山县| 泰来县| 永顺县| 朔州市| 含山县| 岳阳县| 柳州市| 庆元县| 邹平县| 揭东县| 阆中市| 新津县| 台山市| 永和县| 南康市| 赫章县| 乌拉特中旗| 涿州市| 平乐县|