vs yeni Symbol.toPrimitive
sembolü, bir amacı anahtar olarak kullanıldığında, should define bir fonksiyon, bir nesnenin temel değerini dönmek için olan sokulur Symbol.toPrimitive:ECMAScript'te 6, Object.prototype.valueOf
let object = {
aNumber: 0,
[Symbol.toPrimitive]() {
return this.aNumber;
}
};
object.aNumber = 5;
console.log(object + 2) // 7
Bununla birlikte, aynı zamanda, temel bir değere, bir nesneyi dönüştürmek için yeniden olabilir, according to the documentationObject.prototype.valueOf
işlevi vardır: bu yüzden
let object = {
aNumber: 0,
valueOf() {
return this.aNumber;
}
};
object.aNumber = 5;
console.log(object + 2) // 7
, bu yollardan hangi Bir nesneyi ilkel değerine dönüştürmek, yeni bir nesne tanımlarken ES6'da kullanılmalıdır?
[Teknik] (http://people.mozilla.org/~jorendorff/es6-draft.html#sec-toprimitive) -> _The Anahtar işletme ToPrimitive bir giriş bağımsız değişken ile isteğe bağlı argüman PreferredType alır. Soyut işlem ToPrimitive, giriş argümanını Nesne olmayan bir türe dönüştürür. Bir nesne birden fazla ilkel türüne dönüştürebiliyorsa, bu tip tercihini tercih etmek için tercih edilen İpucu PreferredType kullanabilir. - Özel '.toPrimitive()' ise '.valueOf()' nın reesarı döndürülür. – Andreas
@Andreas Bağlandığınız paragraf, "Symbol" belirtimiyle değil, _any_ ilkel olmayan değeri ilkel olana dönüştürmedir. 'Symbol.toPrimitive' için uygun spec [paragraf 19.4.3.4 içinde.] Olduğu (https://people.mozilla.org/~jorendorff/es6-draft.html#[email protected]@toprimitive) –