Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在类JS上的另一个函数中调用函数_Javascript_Function - Fatal编程技术网

Javascript 在类JS上的另一个函数中调用函数

Javascript 在类JS上的另一个函数中调用函数,javascript,function,Javascript,Function,在类的另一个函数中调用特定函数时遇到问题。例如: var class = { function1 : { function2 : { class.function1.function3(); }, function3 : { // my code } } } 有人知道如何简化在function1中调用此函数吗?您将类、function1、Function2和Funct

在类的另一个函数中调用特定函数时遇到问题。例如:

var class = {
    function1 : {
        function2 : {
            class.function1.function3();
        },
        function3 : {
            // my code
        }
    }
}

有人知道如何简化在function1中调用此函数吗?

您将类、function1、Function2和Function3声明为对象,而不是函数。您需要执行以下操作:

var class = {
    function1 : {
        function2 : function() {
            class.function1.function3();
        },
        function3 : function() {
            // my code
        }
    }
}
如果要将
function2
function3
转换为实际功能。也就是说,你可能会想看看OOP是如何在JavaScript中实现的(我猜你正试图这么做),我相信谷歌会给你一些好的提示。我自己也不是专家,但我想你通常会这样做:

function class() {
  this.function2 = function() {
  };
  // etc.
}
var o = new class();

好啊按照他的例子,好像我在类中有第二个函数(function3)并试图在function2中调用它?哇,我完全错过了这个评论。所以现在,2.5年后,我想你已经明白了,但万一有其他人出现:这一切都归结于通话约定。如果您有一个对象
o
,并且使用
o.f1()
,调用了作为成员的函数
f1
,js引擎将自动将
指定为
o
。因此,如果您在
f1
中想要调用
f2
,您可以执行
this.f2()
,同样,
this
for
f2
将设置为
f1
this
的当前值,即
o
。注:相反,如果您执行
var x=o.f1;x()
不会设置此
(如果已设置,则保持不变)。完美!现在我知道该怎么做了,你刚才所说的完全有道理,知识总是受欢迎的,谢谢=D