作者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