Javascript面向对象:如何遍历对象内部的函数?

Javascript面向对象:如何遍历对象内部的函数?,javascript,oop,Javascript,Oop,假设这是我的代码 var myObject = { varA: true, varB: false, init: function() { //do something }, doThis: function() { //do this function doThat(){ //do that } } } 如何(如果可以的话)从对象的

假设这是我的代码

var myObject = {

    varA: true,
    varB: false,

    init: function() {

        //do something
    },


    doThis: function() {

        //do this

        function doThat(){

           //do that   

        }

    }

}
如何(如果可以的话)从对象的“外部”调用函数
doThat()
?可能吗

我正在处理/破解一段由previsous开发人员留下的代码,我不想重写srcatch中的所有内容,所以任何好的解决方法都是可以接受的!谢谢

你不能


函数
不向任何外部作用域公开。除非您以某种方式更改
doThis
以返回对
doThat
的引用,否则除了在其他地方声明函数之外,无法调用它。

如果不修改
myObject
,就无法执行此操作
dot
实际上是一个私有函数。有几种方法可以解决这个问题,例如将
doThat
设置为
doThis
的属性。不建议这样做,但您确实说过您正在进行黑客攻击。

您不能这样做
dot
不是
doThis
myObject
的属性。您必须修改代码以公开附带的
doThat
函数

var myObj = {
  doThis: function() {
    console.log("doing this");
    return function doThat() { console.log("doing that"); };
  } 
};
通过上述方法,您可以:

myObj.doThis()(); // "doing this" / "doing that"