嘿伙计们我刚刚开始使用javascript的原型,我想知道它是否可能,如果是的话,如何调用方法中的函数,例如:
obj = function(test){
this.test=test;
}
obj.prototype.a = function(){
var x = this.test;
function b(){
alert(x);
}
function c(){
console.log(x);
}
}
var foo = new obj();
foo.a.b();
那么,我是否可以在function b
内访问obj.a
而无需调用function c
,即我希望能够调用a
并让它调用其中的两个函数,还可以如果需要,可以致电b
或c
吗?
我知道我可以将这些方法放在a
之外的单独方法中,但我想我会问这个问题。
干杯。
答案 0 :(得分:2)
b
的作用域是声明它的匿名函数。在没有更改该功能的情况下,无法从该功能外部访问该功能。
您可以调用a
,因为它是对象原型的属性(它不存储在范围变量中)。 b
和c
根本没有公开。编写代码的方式是人们通常在JavaScript中创建私有方法。
答案 1 :(得分:1)
你可以改变你的代码以使其成为可能,但我怀疑你真正想要的是当你从外面打电话给b时仍能得到x
的价值......我是对的吗?
您是否考虑过让a
另一个实例独立?我假设你的代码非常重要,足以让它值得......