我想将对象及其方法分配给原型(prototype),我的正常情况是这样的
var Page = function (){
_page = {
id: 1,
getValue : function (){
},
UI : {
display : function (){
console.log('display layout');
}
}
}
return _page;
}
var mypage = new Page()
mypage.UI.display();
在我的情况下,可能有很多Page类的实例,所以我想用原型(prototype)初始化UI对象,所以UI和它的方法可以共享给所有Page实例。为了实现这一点,我可以使用 __proto__
如下,
_page.__proto__.UI = {
display : function (){
console.log('display layout');
}
}
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();
但是这个__proto__
已弃用,那么有没有更好的方法可以实现此目的?
或者
不需要用原型(prototype)初始化UI,无论有多少Pages实例,我们都可以照常使用它,这会影响性能吗?
最佳答案
这样做:
function Page (){
this.id = 1;
}
Page.prototype.getValue = function (){
};
Page.prototype.UI = {
display : function (){
console.log('display layout');
}
};
重要的是,在构造函数中不要返回
,而是将对象的属性分配给this
,因为这是 Page< 的真实实例
。这将使使用prototype
链成为可能。
关于javascript - 将对象及其方法分配给原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42609725/