javascript - 如何在对象函数中调用另一个函数

标签 javascript object

如何在 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/

相关文章:

java - 将文本文件中的数据输入动态数组对象时出现 NullPointerException

javascript - 您如何轻松创建空矩阵 javascript?

javascript - 如何在不覆盖值的情况下合并javascript中的对象

Java:当涉及父/子时,如何获取 ArrayList 中的值?

PHP 按两个属性对对象数组进行排序

java - java中如何动态设置一个对象?

Javascript localStorage 在另一个组件中不可用,除非我刷新页面

javascript - 升级到 Spring 4.3.0,静态 JS 文件现在作为 'application/octet-stream' 而不是 Spring 4.2.6 中的 'application/javascript'

javascript - 类型错误 : Cannot read property 'post' of null"

Python类解释