在問之前,我曾試圖做我的功課,並避免重複。因此,我已經閱讀了大約20個問題和答案(主要針對SO),這些問題都涉及到toString()。但不幸的是,他們都沒有回答我的實際問題。所以在這裏我們去...是Object.prototype.toString函數還是屬性?
許多例子包含的代碼那樣:
Object.prototype.toString.call(someVariable);
我只是想知道爲什麼toString
這裏可以使用類似的屬性。我已閱讀Object.prototype
在MDN和其他地方的參考。他們全部列表函數toString()
Object.prototype
成員當中,但沒有財產toString
。
此外,我在我的代碼中的幾個地方使用上面顯示的那樣的一行。出於測試目的,我已經添加了括號,使其「乾淨」:
Object.prototype.toString().call(someVariable);
顯然,這並沒有使「乾淨」,但只是做它返回錯誤的結果或還送瀏覽器失速(我目前在研究究竟發生了什麼的過程中)。
我已經閱讀了一些關於調用沒有括號的函數的問題和答案。但即使我接受上面顯示的第一行代碼實際上調用了一個函數(儘管它看起來像訪問某個屬性),但仍然無法解釋爲什麼當我添加第二個代碼行中顯示的括號時出現了錯誤。能夠不帶圓括號地調用函數不應該表示不能用圓括號調用它們,應該如何調用它們?
我不認爲這個問題已經有了答案(如果是的話,我表示歉意),那麼任何人都可以給出一個簡短的解釋嗎?
'對象。prototype'是另一個普通的對象,'toString'是它的一個屬性,賦值爲一個函數。就像'{sayHello:function(){console.log(「hello」)}' – Redu
typeof Object.prototype.toString – Surely
這聽起來像你有一些其他語言背景知識(如斯卡拉)根據你的假設。我對麼? –