Object · Lijiahao8898
Posted petewell
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Object · Lijiahao8898相关的知识,希望对你有一定的参考价值。
整理一下碰到的
Object
的一些方法。Object.keys
、Object.defineProperty
、Object.assign
Object.keys( )
返回一个数组,包含指定对象的所有自有可遍历属性的名称。 MDN详解
var vendors =
'': '',
Webkit: 'webkit',
Moz: '',
O: 'o',
ms: 'ms'
;
Object.keys(vendors) // ["", "Webkit", "Moz", "O", "ms"]
Object.defineProperty
直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回这个对象。 MDN详解
语法:
Object.defineProperty(obj, prop, descriptor)
obj
要在其上定义属性的对象。prop
要定义或修改的属性的名称。descriptor
将被定义或修改的属性描述符。
// 使用 __proto__
var obj = ;
var descriptor = Object.create(null); // 没有继承的属性
// 默认没有 enumerable,没有 configurable,没有 writable
descriptor.value = 'static';
Object.defineProperty(obj, 'key', descriptor);
// 显式
Object.defineProperty(obj, "key",
enumerable: false,
configurable: false,
writable: false,
value: "static"
);
// 循环使用同一对象
function withValue(value)
var d = withValue.d || (
withValue.d =
enumerable: false,
writable: false,
configurable: false,
value: null
);
d.value = value;
return d;
// ... 并且 ...
Object.defineProperty(obj, "key", withValue("static"));
// 如果 freeze 可用, 防止代码添加或删除对象原型的属性
// (value, get, set, enumerable, writable, configurable)
(Object.freeze||Object)(Object.prototype);
Object.assign
Object.assign
浅复制对象。
以上是关于Object · Lijiahao8898的主要内容,如果未能解决你的问题,请参考以下文章