我试图在点击html文件下定义的按钮时调用test1.js中定义的立即函数。它总是抛出错误"测试未定义"。我有点意识到它是一个立即函数,它立即调用,因此它返回"未定义的错误"。但是,有什么方法可以在点击按钮时调用立即函数(访问方法,属性等)吗?
提前谢谢。
//test1.js
var test = (function(){
alert(window);
var tmp = 'hello';
}());

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script type="text/javascript" src="test1.js"></script>
<input type="button" id="btn1" value="ClickMe!" />
<script type="text/javascript">
var btn = document.getElementById("btn1");
btn.addEventListener("click",fun1,false);
function fun1(){
alert(test.tmp);
}
</script>
</body>
</html>
&#13;
答案 0 :(得分:2)
您必须修改代码,以便IIFE返回具有tmp
属性的对象。如
var test = (function(){
alert(window);
var tmp = 'hello';
return {tmp:tmp};
}());
答案 1 :(得分:0)
运行IIFE后,您需要显式返回包含您想要的任何数据的对象。 (只需将我的回复添加到下面的代码段中。)
$config['base_url'] = "http://".$_SERVER['HTTP_HOST']."/projectname";
$config['uri_protocol'] = 'PATH_INFO';
&#13;
RewriteEngine on
RewriteCond $1 !^(index\.php|images|system|css|js|style|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
&#13;