sách gpt4 ai đã đi

Giới thiệu Object.defineProperty

In lại 作者:知者 更新时间:2024-03-13 05:51:18 26 4
mua khóa gpt4 Nike

Object.defineProperty函数会直接在一个对象上定义一个新的属性,或者修改一个对象的现有属性,并返回此对象。
一、简单使用

const obj = {} Object.defineProperty(obj, "name", { value: "dmc" }) console.log(obj.name) //dmc

语法:

Object.defineProperty(obj, prop, descriptor)

参数:
obj:需要定义的对象
prop:要定义或者修改的属性名称或者Biểu tượng
descriptor:要定义或修改的属性修饰符。
Giá trị trả về:被传递给函数的对象。
TRONGdescriptor中可以传入对象,其中可以包含多个属性值。
1、configurable
当且仅当该属性为true时,该属性的属性描述符才能被改变,同时该属性也能从对应的对象上删除。默认为false。
2、enumerable
当且仅当该属性的enumerable键值为ĐÚNG VẬY时,该属性才会出现在对象的枚举属性中。默认为SAI.

//设置enumerable之前 const obj = {} Object.defineProperty(obj, "name", { value: "dmc" }) console.log(obj) //{} //设置为enumerable之后 const obj = {} Object.defineProperty(obj, "name", { value: "dmc", enumerable: true }) console.log(obj) //{ name: 'dmc' }

giá trị
该属性对应的值,可以是任何有效的值,默认为undefined
writable
当且仅当该属性的writable键值为ĐÚNG VẬY时,属性的值,也就是上面的giá trị,才能被赋值运算符(en-us)改变。
默认为SAI.

const obj = {} Object.defineProperty(obj, "name", { value: "dmc", configurable: false, enumerable: true, writable: true }) console.log(obj) //{ name: 'dmc } obj.name = "sss" console.log(obj) //{ name: 'sss' }

lấy
属性的 getter 函数,如果没有 getter,则为 undefined。当访问该属性时,会调用此函数。执行时不传入任何参数,但是会传入 this 对象(由于继承关系,这里的this并不一定是定义该属性的对象)。该函数的返回值会被用作属性的值。默认为 undefined。

const obj = {} Object.defineProperty(obj, "name", { configurable: false, enumerable: true, get:() => { return "hhh" } }) console.log(obj.name) //hhh

set属性
属性的 setter 函数,如果没有 setter,则为 undefined。当属性值被修改时,会调用此函数。该方法接受一个参数(也就是被赋予的新值),会传入赋值时的 this 对象。默认为 undefined。

const obj = {} Object.defineProperty(obj, "name", { configurable: false, enumerable: true, get:() => { return "hhh" }, set(newValue) { console.log(newValue) } })
26 4 0
Bài viết được đề xuất: 如何使用 TLS 保护 Docker 的 TCP 套接字
Bài viết được đề xuất: 教你快速搭建NFS服务
Bài viết được đề xuất: quarkus实战之三:开发模式(Development mode)
Bài viết được đề xuất: Django ORM 多表操作(二)
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com