0

嘿伙计们,我刚刚开始使用 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.afunction cabc

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

干杯。

4

2 回答 2

2

b作用域为声明它的匿名函数。如果不更改该函数以将其公开,则无法从该函数外部访问。

您可以调用a,因为它是对象原型的属性(它不存储在作用域变量中)。b并且c完全没有暴露。您编写代码的方式是人们通常在 JavaScript 中创建私有方法的方式。

于 2013-07-07T11:46:18.087 回答
1

您可以稍微更改您的代码以使其成为可能,但我怀疑您真正想要的是仍然能够获得x当您从外部调用 b 时的值......我对吗?

您是否考虑a过自己制作另一个实例?我假设您的代码足够重要,足以让这值得......

于 2013-07-07T11:52:36.257 回答