修改numbers

This commit is contained in:
Ruan Yifeng
2015-01-13 09:51:16 +08:00
parent 540642f75d
commit 29149c7450
5 changed files with 229 additions and 16 deletions
+56 -12
View File
@@ -6,6 +6,42 @@ ES6允许直接写入变量和函数,作为对象的属性和方法。这样
```javascript
function f( x, y ) {
return { x, y };
}
// 等同于
function f( x, y ) {
return { x: x, y: y };
}
```
上面是属性简写的例子,方法也可以简写。
```javascript
var o = {
method() {
return "Hello!";
}
};
// 等同于
var o = {
method: function() {
return "Hello!";
}
};
```
下面是一个更实际的例子。
```javascript
var Person = {
name: '张三',
@@ -36,18 +72,6 @@ getPoint()
```
下面是一个类似的例子。
```javascript
let x = 4;
let y = 1;
// 下行等同于 let obj = { x: x, y: y };
let obj = { x, y };
```
## 属性名表达式
JavaScript语言定义对象的属性,有两种方法。
@@ -133,6 +157,26 @@ Object.is(NaN, NaN) // true
```
ES5可以通过下面的代码,部署Object.is()。
```javascript
Object.defineProperty(Object, 'is', {
value: function(x, y) {
if (x === y) {
// 针对+0 不等于 -0的情况
return x !== 0 || 1 / x === 1 / y;
}
// 针对NaN的情况
return x !== x && y !== y;
},
configurable: true,
enumerable: false,
writable: true
});
```
## Object.assign()
Object.assign方法用来将源对象(source)的所有可枚举属性,复制到目标对象(target)。它至少需要两个对象作为参数,第一个参数是目标对象,后面的参数都是源对象。只要有一个参数不是对象,就会抛出TypeError错误。