首页 >

一种新的javascript对象创建方式Object.create()【javascript】

web前端|js教程一种新的javascript对象创建方式Object.create()【javascript】
javascript,对象,Object.create()
web前端-js教程
Object.create() 是什么?
Object.create(proto [, propertiesObject ]) 是E5中提出的一种新的对象创建方式,第一个参数是要继承的原型,如果不是一个子函数,可以传一个null,第二个参数是对象的属性描述符,这个参数是可选的。
例如: 
评价打分系统php源码,ubuntu 打不了中文,tomcat映射访问路径,旅游爬虫技术,php在线打开文件,沈阳市场抖音seo优化厂家报价lzw
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());
结果为:A blue undefined.
php教务系统后台源码,ubuntu加入库路径,如何打包自定义tomcat,爬虫python 面试,php培训教程网外包,seo照片优化lzw
1、propertiesObject 参数的详细解释:(默认都为false)
数据属性:
让每人给我一元钱源码,用vscode的编写计算器,ubuntu配置重启,怎么切换高版本tomcat,python 爬虫 气象,php应用技巧与实例,镇海区seo推广平台lzw
writable:是否可任意写
configurable:是否能够删除,是否能够被修改
enumerable:是否能用 for in 枚举
value:值

访问属性:

get(): 访问
set(): 设置

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

  yupeng's document         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);  
结果为:
100
yupeng
yupeng1
201
I am returning: YUPENG
A blue PORSCHE BOXTER.
A blue XXXXXXXX.
aaaaaa

以上就是针对javascript一种新的对象创建方式Object.create()的详细介绍,希望对大家的学习有所帮助。


  • 暂无相关文章
  • Posted in 未分类