要从目标中删掉特性,能够如此做。

delete myObject.regex;// 或是delete myObject['regex'];// 或是,var prop = "regex";delete myObject[prop];

事例

var myObject = { "a": "1111", "b": "2222", "c": "3333"};delete myObject.a;console.log(myObject);

知识要点:删掉操作符。

delete操作符用以删掉目标的特性;要是没有对该特性的引入,它最后将被释放出来。

与广泛的观点反过来,删掉运算符与立即增加内存不相干。代码优化是根据断掉引入间接性进行的。相关详细资料,请参照运行内存管理页面。

delete操作符从目标中清除特定的特性。假如删掉取得成功,则回到true,不然回到false。

可是,必须考虑到如下状况:

假如你尝试删掉的特性不会有,那麼delete将不容易起一切功效,但仍会回到true假如目标的原型链上有一个与待删掉特性同名的的特性,那麼删掉特性以后,目标会应用原型链上的那一个特性(换句话说,delete实际操作只能在自己的特性上起功效)一切应用 var 申明的特性不可以从全局性修饰符或涵数的修饰符中删掉。那样的话,delete实际操作不可以删掉一切在全局性修饰符中的涵数(不管这一涵数是来自于函数声明或函数表达式)除开在全局性修饰符中的涵数不可以被删掉,在目标(object)中的涵数是可以用delete实际操作删掉的。一切用let或const申明的特性不能够从它被申明的修饰符中删掉。不能设定的(Non-configurable)特性不可以被清除。这代表着像Math, Array, Object内嵌目标的特性及其应用Object.defineProperty()方式设定为不能设定的特性不可以被删掉。

编码实例:

var Employee = { age: 28, name: 'abc', designation: 'developer'}console.log(delete Employee.name); // returns trueconsole.log(delete Employee.age); // returns true// 当尝试删掉一个不会有的特性时// 一样会回到trueconsole.log(delete Employee.salary); // returns true

评论(0条)

刀客源码 游客评论