assign object and it's method to prototype
本问题已经有最佳答案,请猛点这里访问。
我想把对象和它的方法赋给原型,我的正常条件是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var Page = function (){ _page = { id: 1, getValue : function (){ }, UI : { display : function (){ console.log('display layout'); } } } return _page; } var mypage = new Page() mypage.UI.display(); |
在我的情况下,页面类的实例很多,所以我想用原型初始化UI对象,这样UI和它的方法就可以共享给所有页面实例。为了实现这一点,我可以使用EDCOX1〔0〕如下,
1 2 3 4 5 | _page.__proto__.UI = { display : function (){ console.log('display layout'); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | var Page = function (){ _page = { id: 1, getValue : function (){ } } _page.__proto__.UI = { display : function (){ console.log('display layout'); } } return _page; } var mypage = new Page() mypage.UI.display(); |
但是这个
或
不需要用原型初始化UI,我们可以正常使用它,不管有多少页面实例,这会影响性能吗?
这样做:
1 2 3 4 5 6 7 8 9 10 11 12 13 | function Page (){ this.id = 1; } Page.prototype.getValue = function (){ }; Page.prototype.UI = { display : function (){ console.log('display layout'); } }; |
重要的是,在构造函数中,您不需要
您应该为此使用另一个类模式,例如:
1 2 3 4 5 6 7 8 9 10 | var Page = (function(glob) { function Page() { this.id = 1; } Page.prototype.method = function() { // ... } return Page; }(window)) |