我在我的html文件中有这个:
<div class="messages">
<input id="msg" type="text" name="fname">
<input type="submit" onclick="general.add.call()" value="Send">
<input type="submit" onclick="viewMsgs()" value="view messages">
</div>
并在我的js文件中
(function(){
var general = new Channel();
var rich = new Person('Rich');
var rob = new Person('Rob');
var message = new Message(rich, rob, "Hello!");
})()
以上我有:
class Channel {
constructor() {
this.messages = [];
}
add(msg) {
this.messages.push(msg)
}
为什么说general
未定义?
答案 0 :(得分:1)
general
是一个局部变量,只存在内部的 IIFE中,并且包含在代码中。
它不是全局的,因此您无法将其作为全局访问。
使用addEventListener
(在IIFE内)绑定您的事件处理程序,而不是使用onclick
属性。