javascript 创建对象有这几种方法

方式一:字面量

如:

var obj = {

// a: 1,

// b: 2

// }

方式二:构造函数

   Var obj2=new object(); //如果不传递或者传递空数值之类的,默认返回的控对象。如果传递有值,就返回该值。

方式三:定制化创建对象

let obj3=Object.create(null);//必须传值,否则控制台就会报错。

let obj4=Object.create({},{

//定制化属性

myAge:{

         value:35,//不能和get和set同时使用

         writable:false //也是不能和get和set同时使用 ,writable表示是否可以修改值,true为可以,false为不可以。

})

 console.log(obj4,'obj4'); 

//get和set

var age="哈哈哈"

let obj5=Object.create({},{

//定制化属性

myAge: {

get() {

return age;

},

set(newV) {

//数据劫持

if(newV > 0 && newV < 20) {

console.log()

age = newV;

} else {

alert('数据劫持')

}

}

}); //不能不传值

console.log(obj5, 'obj5')

//Object.create(对象,{属性名:属性描述器对象})

let obj6 = Object.create({}, {

//定制化属性

myAge: {

value: 1,

configurable: true, //可配置 是否可以使用delete、能否改变特性,能否修改访问器属性,false为不可重新定义

enumerable: true //可枚举 是否可以枚举出内部属性【for(let key in obj6){】

}

}); //不能不传值

 

//试验configurable为false时是否可以进行重新定义

Object.defineProperty(obj6, 'myAge', {

get() {

return '1'

}

})

 

// 试验是否可以枚举

for(let key in obj6) {

console.log('key', key)

console.log('value:', obj6[key])

}

console.log(obj6, 'obj6')

 

//方式4

//assign 合并对象

let obj7 = object.assign({

a: 1

}, {

b: 1

})

console.log(obj7)

})

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值