从onclick调用类的实例

时间:2017-05-09 12:49:45

标签: javascript onclick

我在我的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未定义?

1 个答案:

答案 0 :(得分:1)

general是一个局部变量,只存在内部的 IIFE中,并且包含在代码中。

它不是全局的,因此您无法将其作为全局访问。

使用addEventListener(在IIFE内)绑定您的事件处理程序,而不是使用onclick属性。