ES6学习——新加API:Object

73 篇文章 23 订阅

这篇看看Object对象新添加的一些API。

1)Object.is ( value1, value2 )

使用===判断两个value是否相等,两个例外,NaN等于NaN,-0不等于+0。

var x = NaN, y = 0, z = -0;
x === x; // false
y === z; // true
Object.is( x, x ); // true
Object.is( y, z ); // false

2)Object.getOwnPropertySymbols( O )

返回对象Symbol类型的key。

3)Object.setPrototypeOf ( O, proto )

设置对象的隐式原型。

var o1 = {
    foo() { console.log( "foo" ); }
};
var o2 = {};
Object.setPrototypeOf( o2, o1 );

o2.foo(); // foo


var o1 = {
    foo() { console.log( "foo" ); }
};
var o2 = Object.setPrototypeOf( {}, o1 );

o2.foo();

4)Object.assign ( target, ...sources )

对象的浅拷贝,把sources对象的内容拷贝到target,忽略Symbol类型的key,不能枚举的key,父对象中的key

var target = {},
	o1 = { a: 1 }, o2 = { b: 2 },
	o3 = { c: 3 }, o4 = { d: 4 };

Object.defineProperty( o3, "e", {
	value: 5,
	enumerable: true,
	writable: false,
	configurable: false
} );


Object.defineProperty( o3, "f", {
	value: 6,
	enumerable: false
} );

o3[ Symbol( "g" ) ] = 7;

Object.setPrototypeOf( o3, o4 );
Object.assign( target, o1, o2, o3 );

target.a; // 1
target.b; // 2
target.c; // 3
target.e; // 5

Object.getOwnPropertyDescriptor( target, "e" );//Object {value: 5, writable: true, enumerable: true, configurable: true}

*以上全部代码在Chrome 48下通过测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值