看板 Ajax 關於我們 聯絡資訊
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://www.ptt.cc/bbs/Ajax/M.1450546469.A.50B.html
davidsky: 因為 new Item.list()拿到的實際上是 list 這個 12/20 02:04
davidsky: constructor回傳的結果,也就是obj這個function 12/20 02:05
icydream: 所以改成new (Item.list()); 或是new (new Item.list()) 12/20 02:09
icydream: ; 12/20 02:09
danny8376: 照原PO想要的 應該是要改list的value吧wwww 12/21 02:29
danny8376: list: function() { .... }, 這部分 12/21 02:30
danny8376: 應該要改成 list: function() { .... }(), 才對 12/21 02:30
danny8376: 你要assign給list的應該是匿名function回傳值的obj 12/21 02:31
danny8376: 而不是那個function本身啊 12/21 02:31
qas612820704: 我現在是把return obj改成return new obj然後事情就 12/21 03:10
qas612820704: 會如我預期的執行 這樣做跟大大們講的會有差嗎@@? 12/21 03:10