<script>
function testFun(fun){
var name = "b";
fun(name);
}
var test1 = function(){
this.name = "a";
this.SetName = function(str){
this.name = str;
}
}
var test2 = new test1();
alert("修改前:"+test2.name);
testFun(test2.SetName());
alert("修改后:"+test2.name);
</script>
为什么浏览器提示fun不是一个函数呢?方法不也是一个函数吗?
请大佬解答,谢谢。
毫无疑问: js可以把方法当作参数传递
test2.SetName() 是一个执行结果,而不是方法;
所以你传递到testFun的不是一个方法,传递方法到另一个函数,并不需要在方法后加上()
我猜测,你想要的结果是
testFun(test2.SetName);