use*_*593 1 javascript coffeescript
CoffeScript代码:
department = ->
console.log 1
Run Code Online (Sandbox Code Playgroud)
这编译成js代码:
// Generated by CoffeeScript 1.6.3
(function() {
var department;
department = function() {
return console.log(1);
};
}).call(this);
Run Code Online (Sandbox Code Playgroud)
我有一个按钮:
<button onclick = "department()" >add department</button>
Run Code Online (Sandbox Code Playgroud)
但是当我点击它时会抛出一个错误:
未捕获的ReferenceError:未定义部门
所以我该怎么做?
这是因为你的函数department不在全局范围内,而是在你编写为IIFE的匿名函数的闭包中.
<button onclick = "department()" >add department</button>单击时将department()在全局范围内查找该函数,但您没有.
当您将处理程序编写为内联html属性时会发生这种情况.您可以使用javascript绑定事件,在闭包中提供函数作为参考.
你可以这样做:
例:-
<button id="dept" >add department</button>
Run Code Online (Sandbox Code Playgroud)
和
(function() {
var department;
department = function() {
return console.log(1);
};
window.onload = function(){
document.getElementById('dept').onclick = department;
}
}).call(this);
Run Code Online (Sandbox Code Playgroud)