如何将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()');
答案 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()
最后一行代码调用传递给第一个函数的函数。