[问题] 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