如何在 JavaScript 中从一个对象中的函数调用另一个函数。
例如,我正在尝试这样做:
var mydiv1 = document.querySelector('.div1');
var mydiv2 = document.querySelector('.div2');
var myVariable1;
var myVariable2;
var myObject = (function() {
return {
function1 : function (myVariable1) {
myVariable2 = "this was called from a function and inserted by function2";
mydiv1.innerHTML = myVariable1;
function2(myVariable2);
},
function2 : function (myVariable2) {
mydiv2.innerHTML = myVariable2;
}
};
}());
mydiv1.addEventListener('click', function() {
myVariable1 = "this was called from a function and inserted by function1";
myVariable2 = "this was called from a function and inserted by function2";
myObject.function1(myVariable1);
});
这是一个 fiddle http://jsfiddle.net/kvtxd/6/
“Function1”运行异常,但我收到一个错误,指出 function2 未定义。执行此操作的正确方法是什么?
我使用对象的原因是,如果需要,我可以单独调用每个内部函数。即只调用 function2 但不调用 function1。
看,如果我使用:
function WholeFunction() {
function function1() {
//
}
function function2() {
//
}
}
然后 function1 和 function2 超出范围,我只能调用整个东西。
最佳答案
在函数内部使用“this”关键字:
function1 : function (myVariable1) {
myVariable2 = "this was called from a function and inserted by function2";
mydiv1.innerHTML = myVariable1;
this.function2(myVariable2); // use "this" here!!!!
},
这是一个 Fiddle
关于javascript - 如何在对象函数中调用另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23854001/