对象的方法
- Object.freeze( obj ) : 冻结对象,使对象的属性不能删除和修改
var obj = { a : 1 , b : 2};
Object.freeze(obj);
delete obj.a;
obj.b = 20;
console.log(obj)
- Object.is : 相当于 ===
<script>
console.log( NaN === NaN )
console.log( Object.is( NaN === NaN ))
</script>
- Object.isExtensible( obj ) : 判断是否可扩展
var obj = {
a: 1,
b: 2
};
Object.freeze(obj);
console.log(Object.isExtensible(obj))
console.log(Object.isFrozen(obj))
- 对象.hasOwnProperty : 判断这个属性是否是对象的属性,如果是原型链属性,返回false
var obj={
a:1,
b:2
};
var o=Object.create(obj);
o.c=10;
console.log(o.hasOwnProperty("a"));
console.log(o.a);
console.log(o.hasOwnProperty("c"));
- Object.defineProperty ( 对象 , 属性名 , 值的描述对象): 定义属性
var obj = {};
Object.defineProperty( obj , "abc" , {
configurable : false,
enumerable : true,
writable : false,
value : "aaa"
})
obj.abc = 10;
console.log( obj )
- obj.propertyIsEnumerable: 判断是否可以枚举
console.log( obj.propertyIsEnumerable( "b" ))
- set和get
var obj = {
a: 1,
b: 2,
_e: 0,
c: function () {},
d: function () {},
set e(_value) {
this._e = _value;
console.log("aaa" + _value);
},
get e() {
console.log("执行get了");
return this._e;
},
};
obj.e = 10;
obj.e = 20;
obj.e++;