从公共方法调用私有方法?

2023-11-29

我定义了一个这样的类:

function Class1(){
    this.Func1 = function(){
       /* Methods and vars */
    };

    function Func2(){
       /* Methods and vars */
    };

};

我想找到一种从私有方法(Func2())调用公共方法(或获取公共变量的值)的方法。有什么建议吗?

Pd:抱歉,如果我使用的术语强烈面向对象,因为我是一名 C++ 程序员,而且我对 javascript 编程有点陌生。


From Func1,你可以打电话Func2直接地:

this.Func1 = function() {
  Func2();
};

但是,您不能执行相同的操作来调用Func1 from Func2因为Func2(可能)有不同的范围和不同的定义this当它被调用时;this.Func1将是未定义的。正如下面 alx 所建议的,您可以使用另一个变量来保存作用域,该变量在从内部函数使用时将保留其值。您还可以保存参考Func1在本地范围内如下:

var Func1 = this.Func1 = function() {
  // fun stuff
};

function Func2() {
  Func1();
}

这是有效的,因为它不依赖于不断变化的参考this.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从公共方法调用私有方法? 的相关文章

随机推荐