7
在Javascript中,使用a.b(c)
或[a.b][0](c)
的原因是this
與對象a
的綁定,或者在執行代碼a.b
的過程中不使用。保證`Math.cos(0)=== [Math.cos] [0](0)`?
繼使用
var z = Math.cos;
console.log(z(1));
在理論上是從console.log(Math.cos(1))
不同,但在實踐中似乎並不那麼同樣的道理。
的問題是:它的標準保證像Math
,Symbol
或Object
預定義的對象this
上下文無關以合規的實施?
隨着Math
這個問題似乎是愚蠢的,因爲顯然沒有理由依賴於上下文...但是例如用於Symbol.for
這是合理的假設的實現可以在全局符號表存儲在一個對象成員在這種情況下,使用[Symbol.for][0]("x")
不起作用。
Symbol.for
確實似乎沒有節點,Chrome和Firefox方面做工精細,但我不知道這是保證或只是偶然......
你的問題似乎假設對於Math庫而言,這個上下文對結果有影響,我不確定數學庫爲什麼會對'this'上下文做任何事情。那麼爲什麼這對你有什麼影響呢? – Icepickle
@Ippickle這是一個什麼樣的問題? – melpomene
'this'綁定如何影響js內置數學函數的返回值? – chiliNUT