我在帖子JavaScript private methods中看到我们可以在javascript中“模拟”私有方法。
function Restaurant(price)
{
var myPrivateVar;
this.price = price;
var private_stuff = function() // Only visible inside Restaurant()
{
myPrivateVar = "I can set this here!";
}
this.toto = function() {
private_stuff();
// do sthg
}
}
当我尝试在private_stuff方法中调用price成员时,它不起作用:
var private_stuff = function() // Only visible inside Restaurant()
{
myPrivateVar = "I can set this here!";
alert(this.price); // return undefined !
}
那么如何在javascript中使用私有方法中的公共属性?
答案 0 :(得分:0)
问题是:在private_stuff函数内部,它引用自身,而不是由Restaurant构造函数构造的对象。将方法绑定到对象有几种方法,一种简单的方法是:
this.toto = function() {
private_stuff.call(this);
// do sthg
}
在对象的上下文中调用函数。
答案 1 :(得分:-1)
我找到了解决方案:删除“这个。”