方法/函数里面的对象方法javascript

时间:2013-07-07 11:44:01

标签: javascript

嘿伙计们我刚刚开始使用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并让它调用其中的两个函数,还可以如果需要,可以致电bc吗?

我知道我可以将这些方法放在a之外的单独方法中,但我想我会问这个问题。

干杯。

2 个答案:

答案 0 :(得分:2)

b的作用域是声明它的匿名函数。在没有更改该功能的情况下,无法从该功能外部访问该功能。

您可以调用a,因为它是对象原型的属性(它不存储在范围变量中)。 bc根本没有公开。编写代码的方式是人们通常在JavaScript中创建私有方法。

答案 1 :(得分:1)

你可以改变你的代码以使其成为可能,但我怀疑你真正想要的是当你从外面打电话给b时仍能得到x的价值......我是对的吗?

您是否考虑过让a另一个实例独立?我假设你的代码非常重要,足以让它值得......