如何在第一个函数参数中将一个函数传递给另一个函数?

时间:2011-05-08 16:01:42

标签: javascript

如何将testx函数作为参数传递给change_text函数?

function change_text(to, id, func) {
this.to = to;
this.id = id;
    this.doit = function() {
            this.target = document.getElementById(this.id);
           this.target.innerHTML = this.to;
    }
func;
}
function testx() {
    alert("TESTING");
}

var box = new change_text("HELLO, WORLD", 'theboxtochange', 'testx()');

2 个答案:

答案 0 :(得分:5)

只是给出它的名字(没有parens或引号):

var box = new change_text("HELLO, WORLD", 'theboxtochange', testx);

函数是第一类对象,因此它们的名称是对它们的引用。

change_text中,您可以使用对它的引用(func)来调用它,就像指向函数的任何其他符号一样,所以:

func();

答案 1 :(得分:0)

我改进了代码,现在我明白函数是第一类对象,所以任何对象名也是对它的引用。只需省略名称旁边的括号即可将该名称传递给参数中的其他函数。

function change_text(to, id, func) {
this.to = to;
this.id = id;
this.doit = function() {
        this.target = document.getElementById(this.id);
       this.target.innerHTML = this.to;
}
this.func = func;
}
function testx() {
alert("TESTING");
}

var box = new change_text("HELLO, WORLD", 'theboxtochange', testx());
box.func()

最后一行代码调用传递给第一个函数的函数。