首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

JS操作对象属性(获取、添加、删除、修改对象属性

使用 Object.defineProperty 使用 Object.defineProperty() 函数可以为对象添加属性,或者修改现有属性。...使用 Object.keys 使用 Object.keys() 函数仅能获取可枚举的私有属性名称。...如果读取未定义的属性,则返回值都是 undefined。 删除属性 使用 delete 运算符可以删除对象的属性。 示例 下面示例使用 delete 运算符删除指定属性。...var obj = {x : 1}; //定义对象delete obj.x; //删除对象的属性xconsole.log(obj.x); //返回undefined 当删除对象属性之后,不是将该属性值设置为...如果使用 for/in 语句枚举对象属性,只能枚举属性值为 undefined 的属性,但不会枚举已删除属性。 使用方法 方法也是函数,当函数被赋值给对象的属性,就被称为方法。

15.1K00

JS篇(021)-for in、Object.keys和Object.getOwnPropertyNames对属性遍历有什么区别

答案: * for in 会遍历自身及原型链上的可枚举属性 * Object. keys 会将对象自身的可枚举属性的 key 输出 * Object. getOwnPropertyNames会将自身所有的属性的...key 输出 解析: ECMAScript 将对象的属性分为两种:数据属性和访问器属性。...enumerable: true, configurable: true } }); // parent继承自Object.prototype,有一个可枚举的属性a(enumerable.... keys console.log(Object.keys(child)); // ["b"] // Object.keys 会将对象自身的可枚举属性的key输出 3、Object. getOwnPropertyNames...console.log(Object.getOwnPropertyNames(child)); // ["b","c"] // 会将自身所有的属性的key输出 [参与互动](https://github.com

1.2K20

这次彻底理解了Object这个属性

.name = '李四'; console.log(person2.name); //'李四' 3.删除对象中的属性 var person1 = { name: '张三' }; person1...由于对象的属性可以被随时随地被修改或删除,因此有时候我们需要检查对象的某个属性是否存在。...如果我们只是想获取一个对象中的所有属性名,可以使用Object.keys()方法。该方法会以数组的形式返回所有的属性名。...如果我们向改变属性的特性,可以使用Object.defineProperty()方法。该方法接受3个参数:拥有被修改属性的对象、被修改的属性名、包含描述特性的对象。...Object.defineProperty(),定义多个属性使用的是Object.defineProperties(),这个方法接受2个参数,第一个是属性所属的对象,第二个是包含被定义属性的对象。

65820

面向对象中Object常用属性总结

学完Object属性,自己总结一些常用是Object常用属性Object.prototype:属性表示Object的原型对象。...属性Object.prototype.constructor:特定的函数,用户创建一个对象的原型。 Object.prototype....语法:Object.freeze(obj) obj:将要被冻结的对象 Object.getOwnPropertyDescriptor():方法返回指定对象上有一个自有属性对应的属性描述符(自有属性值的是直接...密封对象是指那些不可扩展的,且所有自身属性都不可配置的(non-configurable)且属性不可删除的对象(其可以是可写的)。...密封对象将会阻止向对象添加新的属性,并且会将 所有已有属性的可配置属性(coonfigurable)置为不可配置(false),即不可修改属性的描述或删除属性 ,但是可写性描述(writable)为可写

87820

js Object.defineProperty()详解

数据属性有 4个特性描述它们的行为: Configurable:表示属性是否可以通过 delete 删除并重新定义,是否可以修改它的特性,以及是否可以把它改为访问器属性。...访问器属性有 4 个特性描述它们的行: Configurable:表示属性是否可以通过 delete 删除并重新定义,是否可以修改它的特性,以及是否可以把它改为数据属性。...false, // configurable 设置为 false,意味着这个属性不能从对象上删除 value: 25 // 设置age的值,不设置的话默认为undefined 后续不再演示value...}); console.log(person.age); // 25 delete person.age; // 因为configurable设置为false,所以无法删除属性 console.log...所以无法删除属性 console.log(person.name); // 小明 3.2 Enumerable const person = { name: 'lc', age: 20

2.3K20

js对象属性

均为布尔型,默认为true,分别代表可删除、可枚举、可修改,第四个为true 访问器属性 configurable,enumerable,getter,setter 后面两个是非必须的 虽然似乎说的很明白...(let p in zhangsan){ console.log(zhangsan.hasOwnProperty(p),`${p}:${zhangsan[p]}`) } 参考代码 codepen关于js...方法 内容 备注 for in 可枚举,自身以及继承属性 对象以及继承,可枚举,不含 Symbol 属性 Object.keys(obj) 返回一个数组,包括对象自身的(不含继承的)所有可枚举属性键名...对象自身可枚举,不含 Symbol 属性 Object.getOwnPropertyNames(obj) 返回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名 对象自身...,包括不可枚举属性 Object.getOwnPropertySymbols(obj) 返回一个数组,包含对象自身的所有 Symbol 属性的键名 对象自身,symbol Reflect.ownKeys

15.6K10

js nextSibling属性和previousSibling属性

1:nextSibling属性属性表示当前节点的下一个节点(其后的节点与当前节点同属一个级别);如果其后没有与其同级的节点,则返回null。...需要特别注意的是:该属性在不同的浏览器中的执行结果并不都相同,见下面例示: 先来看一个例子: <input id=“a4” type=“button” οnclick...opera和safari对nextSibling的处理方式与FF一致 2:previousSibling属性属性与nextSibling属性的作用正好相反。...3:通过nextSibling或者 previousSibling所获得的HTML标签元素对象的属性问题 一般先通过nextSibling.nodeName来获知其标签名,或者通过nextSibling.nodeType...如果该nextSibling.nodeName = #text,则通过nextSibling.nodeValue来获知其文本值;否则,可以通过nextSibling.innerHTML等其他常用标签元素属性来获取其属性

6.3K30

使用 Object.defineProperty 为对象定义属性

Object.defineProperty() 定义以及使用 Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。...当且仅当该属性的 configurable 为 true 时,该属性描述符才能够被改变,也能够被删除。 enumerable:默认为 false。...' }); delete Leo.name; //configurable为false的时候删除属性会报错 configurable 参数不仅负责属性删除,也与属性修改有关。...Object.freeze(obj) Object.freeze() 方法可以冻结一个对象,冻结指的是不能向这个对象添加新的属性,不能修改其已有属性的值,不能删除已有属性,以及不能修改该对象已有属性的可枚举性...最后 了解了 Object.defineProperty 的用法,接下来就是写一个自己的 Vue.js 了。敬请期待。

87810

ECMAScript5 Object的新属性方法

true} Object.getOwnPropertyNames 获取所有的属性名,不包括prototype中的属性,返回一个数组 console.log(Object.getOwnPropertyNames...Object.isExtensible 方法用于锁住对象属性,使其不能够拓展,也就是不能增加新的属性,但是属性的值仍然可以更改,也可以把属性删除Object.isExtensible用于判断对象是否可以被拓展...(o.lastName); //ByronSun,属性值仍然可以修改 //delete o.lastName; console.log(o.lastName); //undefined仍可删除属性 o.firstname...方法用于把对象密封,也就是让对象既不可以拓展也不可以删除属性(把每个属性的configurable设为false),单数属性值仍然可以修改,Object.isSealed由于判断对象是否被密封 Object.seal.../ Object.isFrozen 终极神器,完全冻结对象,在seal的基础上,属性值也不可以修改(每个属性的wirtable也被设为false) Object.freeze(o); o.age = 25

70940
领券