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
forf2
将设置为f1
中this
的当前值,即o
。注:相反,如果您执行var x=o.f1;x()
,不会设置此
(如果已设置,则保持不变)。完美!现在我知道该怎么做了,你刚才所说的完全有道理,知识总是受欢迎的,谢谢=D