看板 Ajax 關於我們 聯絡資訊
var a = 'thisisstring' ; 這是一個簡單的字串值 但是卻可以執行toString() ; // why? --- 當我使用console.log(a) 只有一個簡單的值。 要如何看到所謂的對prototype的繫節? 當我想要看到我有多少方法可以用的時候,看怎麼觀察? 以上 有沒有高手指導一二...感謝 -- 感謝回答,依照討論狀況 a 應該不能算是一個string object 依舊是個string literal,只是如S大所言。繼承了~ 但是還是不懂更細節的事情 另外,老問題 有辦法看到被綁定prototype嗎? 例如說,我們明明知道a有toString可以使用 但是console.log(a)的時候,資訊就完全不足了。 而且,像我console.log($(a))的時候 (jQuery物件) 就可以知道有哪些方法可以使用,有沒有辦法做到類似這樣? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.230.103.250
Fantasywind:因為字串是物件 基本上妳可以透過webkit系browser 05/12 12:57
Fantasywind:於console檢視該物件的方法列表 應該是最簡單的方法 05/12 12:58
Fantasywind:如果是自己的物件模型 Object.getOwnPropertyNames() 05/12 13:06
s25g5d4:字串是String物件的一個實例 因此他繼承了String物件的 05/12 13:26
s25g5d4:prototype, 而String是一個物件因此他又繼承了Object 05/12 13:27
s25g5d4:的prototype, 大部分在js中的物件都繼承自Object 05/12 13:27
s25g5d4:因此 Object 的 prototype 幾乎每個物件或實例都繼承了 05/12 13:28
elba:a是基本資料型態不是物件, typeof a => "string" 05/12 13:45
elba:有toString可以用是系統暫時產了一個String物件 05/12 13:46
elba:String繼承Object的toString也改寫了toString 05/12 13:49
elba:Object.prototype.toString.call(a) => "[object String]" 05/12 13:49
elba:String.prototype.toString.call(a) => "thisisstring" 05/12 13:50
s25g5d4:對 應該是基本型態 (汗 05/12 13:53
※ 編輯: coldollsheep 來自: 36.230.103.250 (05/12 18:04)
s25g5d4:用for/in去枚舉String.prototype 記得加hasOwnProperty 05/12 18:07
s25g5d4:不過我是建議你不如上網找文件 MDN很好用的 05/12 18:08
Fantasywind:elba大是正確的 sorry 05/12 18:51