作者qas612820704 (Lego)
看板Ajax
標題[問題] json function prototype
時間Sun Dec 20 01:34:24 2015
var Item = {
list: function() {
var obj = function() {};
obj.prototype.sayHello = function() {console.log('Hello')};
return obj;
},
};
var a = new Item.list();
我想請問 為何 我沒辦法 call 到 a.sayHello()
我不知道這該怎下關鍵字去 google 有大大可以解答媽QQ~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.230.76.111
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Ajax/M.1450546469.A.50B.html
1F:推 davidsky: 因為 new Item.list()拿到的實際上是 list 這個 12/20 02:04
2F:→ davidsky: constructor回傳的結果,也就是obj這個function 12/20 02:05
3F:推 icydream: 所以改成new (Item.list()); 或是new (new Item.list()) 12/20 02:09
4F:→ icydream: ; 12/20 02:09
5F:→ danny8376: 照原PO想要的 應該是要改list的value吧wwww 12/21 02:29
6F:→ danny8376: list: function() { .... }, 這部分 12/21 02:30
7F:→ danny8376: 應該要改成 list: function() { .... }(), 才對 12/21 02:30
8F:→ danny8376: 你要assign給list的應該是匿名function回傳值的obj 12/21 02:31
9F:→ danny8376: 而不是那個function本身啊 12/21 02:31
10F:→ qas612820704: 我現在是把return obj改成return new obj然後事情就 12/21 03:10
11F:→ qas612820704: 會如我預期的執行 這樣做跟大大們講的會有差嗎@@? 12/21 03:10