[問題] json function prototype

作者: qas612820704 (Lego)   2015-12-20 01:34:24
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~
作者: davidsky (Alive)   2015-12-20 02:04:00
因為 new Item.list()拿到的實際上是 list 這個constructor回傳的結果,也就是obj這個function
作者: icydream (巧虎)   2015-12-20 02:09:00
所以改成new (Item.list()); 或是new (new Item.list());
作者: danny8376 (釣到一隻猴子@_@)   2015-12-21 02:29:00
照原PO想要的 應該是要改list的value吧wwwwlist: function() { .... }, 這部分應該要改成 list: function() { .... }(), 才對你要assign給list的應該是匿名function回傳值的obj而不是那個function本身啊
作者: qas612820704 (Lego)   2015-12-21 03:10:00
我現在是把return obj改成return new obj然後事情就會如我預期的執行 這樣做跟大大們講的會有差嗎@@?

Links booklink

Contact Us: admin [ a t ] ucptt.com