es6 允許直接寫入變數和函式,作為物件的屬性和方法。這樣的書寫更加簡潔。
var foo = 'bar';
var baz = ;
baz //
// 等同於
var baz = ;
上面**表明, es6 允許在物件之中,只寫屬性名,不寫屬性值。這時,屬性值等於屬性名所代表的變數。下面是另乙個例子。
function f(x, y) ;
}// 等同於
function f(x, y) ;
}f(1, 2) // object
除了屬性簡寫,方法也可以簡寫。
var o =
};// 等同於
var o =
};
下面是乙個實際的例子。
var birth = '2000/01/01';
var person =
};
這種寫法用於函式的返回值,將會非常方便。
function getpoint() ;
}getpoint()
//
commonjs 模組輸出變數,就非常合適使用簡潔寫法。
var ms = {};
function getitem (key)
function setitem (key, value)
function clear () ;
}module.exports = ;
// 等同於
module.exports = ;
屬性的賦值器( setter )和取值器( getter ),事實上也是採用這種寫法。
var cart = ,
set wheels (value)
this._wheels = value;
}}
注意,簡潔寫法的屬性名總是字串,這會導致一些看上去比較奇怪的結果。
var obj =
};// 等同於
var obj =
};
上面**中,class是字串,所以不會因為它屬於關鍵字,而導致語法解析報錯。
如果某個方法的值是乙個 generator 函式,前面需要加上星號。
var obj =
};
es6 javascript物件的擴充套件運算子
目前,es7 有乙個提案,將 rest 解構賦值 擴充套件運算子 引入物件。babel 轉碼器已經支援這項功能。1 rest 解構賦值 物件的 rest 解構賦值用於從乙個物件取值,相當於將所有可遍歷的 但尚未被讀取的屬性,分配到指定的物件上面。所有的鍵和它們的值,都會拷貝到新物件上面。let x ...
es6 javascript屬性的可列舉性
物件的每個屬性都有乙個描述物件 descriptor 用來控制該屬性的行為。object.getownpropertydescriptor方法可以獲取該屬性的描述物件。let obj object.getownpropertydescriptor obj,foo 描述物件的enumerable屬性,...
ES6 JavaScript 的深複製和淺複製
react中,我們會遇到乙個有趣的問題,那就是物件的複製,為什麼說有趣,是因為直覺和結果差距很大。我們看一下這個例子 let a let b a a.title 淺複製 那麼我們會獲得兩個物件,乙個a,乙個b,a的title是淺複製,b的title是深複製。但結果真是這樣嗎?我們console.lo...