亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么toString()是不需要對象的方法?

為什么toString()是不需要對象的方法?

Qyouu 2021-05-07 18:18:11
我對編程的了解越深,我以為我所知道的舊概念就會使我感到困惑。例如,toString()方法。我怎么能將此方法應用于不是對象的變量?是否因為toString()是可應用于所有數據類型的內置javascript方法?
查看完整描述

3 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

幾乎所有內容都是JavaScript中的對象。您所稱的原語(字符串,數字等)都具有方法:


console.log("Message".toUpperCase());

console.log(123.toString());

因此,您可以將toString任何內容(即使它看起來并不像對象)應用于任何事物的原因是,因為一切實際上都是一種對象,這意味著它可以具有方法。以下是toString有關不同事物的一些示例:


console.log(123..toString());

console.log(["A", "B", "C"].toString());

console.log(typeof true.toString());


查看完整回答
反對 回復 2021-05-27
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

有多種不同的toString方法。有Object.prototype.toString,任何對象都可以繼承。還有Number.prototype.toString,Boolean.prototype.toStringString.prototype.toString

當你做

'foo'.toString()

您實際上是在調用String.prototype.toString-您不是在調用Object.prototype.toString。


Object.prototype.toString = () => 'changed';
 console.log('foo'.toString());


盡管字符串和其他事物可以解釋為對象,并且已經對其進行了Object.prototype.toString調用,但是通常您只是在調用原始特定于方法的方法,例如Boolean.prototype.toStringString.prototype.toString。(這些原型確實是繼承自Object.prototype,但是該Object.prototype.toString方法被更接近的原型方法所遮蓋,甚至可能根本不考慮)

為什么這些方法存在于這些原語中?可能是為了保持一致性。如果您有不是undefined或的東西null,您將知道可以對其進行調用toString。


查看完整回答
反對 回復 2021-05-27
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

您應該了解“原型繼承”。在我看來,這是javascript語言最重要的概念之一。

上面的答案是正確的,但是直到您花一些時間來學習這個主題之前,您都不會理解它們的含義。

希望能給您一些指導!


查看完整回答
反對 回復 2021-05-27
  • 3 回答
  • 0 關注
  • 246 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號