1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > object.defineProperty

object.defineProperty

时间:2023-07-31 09:53:56

相关推荐

object.defineProperty

1、object.defineProperty

给一个对象定义一个新的属性或者在修改一个对象现有的属性,并返回这个对象

语法:

Object.defineProperty(参数1,参数2,参数3)

参数1:目标对象

参数2:要修改或者添加的属性名称

参数3:目标对象属性的一些特征 (是一个对象)

参数1:

value:属性值

参数2:

writable:对象属性值是否可以被修改 true允许 false不允许

参数3:

configurable:对象属性是否可以被删除 true允许 false不允许

参数4:

enumerable:对象属性是否可被枚举

参数5:

get():给一个属性提供getter方法,当访问这个对象的属性值得时候触发该方法

参数6:

set():给一个属性提供setter方法,当设置属性值得时候触发该方法

2、value

var obj = {};Object.defineProperty(obj,"name",{value:"张三"})Object.defineProperty(obj,"age",{value:"28"})console.log(obj)

3、writable

var obj = {};Object.defineProperty(obj,"name",{value:"张三",writable:false//当设置为false的时候当前对象的属性值不允许被修改})obj.name="李四"console.log(obj.name)//张三var obj = {};Object.defineProperty(obj,"name",{value:"张三",writable:true//当设置为true的时候当前对象的属性值允许被修改})obj.name="李四"console.log(obj.name)//李四

4、configurable

var obj = {};Object.defineProperty(obj,"name",{value:"张三",configurable:false//当设置为false的时候对象的属性不允许被删除})delete obj.name;console.log(obj.name)//张三var obj = {};Object.defineProperty(obj,"name",{value:"张三",configurable:true//当设置为true的时候对象的属性允许被删除})delete obj.name;console.log(obj.name)//undefined

5、enumerable

var obj = {name:"张三",age:"李四"}Object.defineProperty(obj,"name",{enumerable:false//当设置为false的时候对象的属性不可被枚举})Object.defineProperty(obj,"age",{enumerable:false})console.log(Object.keys(obj))//[]var obj = {name:"张三",age:"李四"}Object.defineProperty(obj,"name",{enumerable:true//当设置为true的时候对象的属性可被枚举})Object.defineProperty(obj,"age",{enumerable:true})console.log(Object.keys(obj))//["name",age]

6、for in && Object.keys()的区别

//for in 与Object.keys()的区别function Person(name,age){this.name = name;this.age = age;}Person.prototype = {sex:"男"}var man = new Person("张三",18);console.log(Object.keys(man));//["name","age"]for(var key in man){console.log(key);//name age sex}

7、get() && set()

var obj = {name:"张三"}Object.defineProperty(obj,"name",{get(){console.log("被访问了")//当被访问的时候会触发get()方法},set(newVal){console.log("被设置了"+newVal)//当被设置的时候会触发set()方法}})obj.name//输出:被访问了obj.name="李四";//输出:被设置了李四

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。