Javascript 从onclick调用类的实例
我的html文件中包含以下内容:Javascript 从onclick调用类的实例,javascript,onclick,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"&g
<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>
除此之外,我还有:
class Channel {
constructor() {
this.messages = [];
}
add(msg) {
this.messages.push(msg)
}
为什么说
general
是未定义的?general
是一个局部变量,它只存在于围绕代码的iLife中
它不是全局文件,因此您无法作为全局文件访问它
使用
addEventListener
(在IIFE中)绑定事件处理程序,而不是使用onclick
属性。这是因为您将整个变量declaration嵌套在函数()中{
对于某些原因,变量存在于执行上下文中。general存在于声明它的执行上下文中,即IIFE(function(){…})(
),无法从外部访问。
class Channel {
constructor() {
this.messages = [];
}
add(msg) {
this.messages.push(msg)
}