作者coldollsheep (加油加油^^)
看板Ajax
標題[問題] 物件與protytype有繫節這句話的疑問
時間Sun May 12 11:57:27 2013
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
1F:推 Fantasywind:因為字串是物件 基本上妳可以透過webkit系browser 05/12 12:57
2F:→ Fantasywind:於console檢視該物件的方法列表 應該是最簡單的方法 05/12 12:58
3F:推 Fantasywind:如果是自己的物件模型 Object.getOwnPropertyNames() 05/12 13:06
4F:推 s25g5d4:字串是String物件的一個實例 因此他繼承了String物件的 05/12 13:26
5F:→ s25g5d4:prototype, 而String是一個物件因此他又繼承了Object 05/12 13:27
6F:→ s25g5d4:的prototype, 大部分在js中的物件都繼承自Object 05/12 13:27
7F:→ s25g5d4:因此 Object 的 prototype 幾乎每個物件或實例都繼承了 05/12 13:28
8F:→ elba:a是基本資料型態不是物件, typeof a => "string" 05/12 13:45
9F:→ elba:有toString可以用是系統暫時產了一個String物件 05/12 13:46
10F:→ elba:String繼承Object的toString也改寫了toString 05/12 13:49
11F:→ elba:Object.prototype.toString.call(a) => "[object String]" 05/12 13:49
12F:→ elba:String.prototype.toString.call(a) => "thisisstring" 05/12 13:50
13F:→ s25g5d4:對 應該是基本型態 (汗 05/12 13:53
※ 編輯: coldollsheep 來自: 36.230.103.250 (05/12 18:04)
14F:推 s25g5d4:用for/in去枚舉String.prototype 記得加hasOwnProperty 05/12 18:07
15F:→ s25g5d4:不過我是建議你不如上網找文件 MDN很好用的 05/12 18:08
16F:推 Fantasywind:elba大是正確的 sorry 05/12 18:51