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"