Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数原型调用另一个函数原型javascript_Javascript_Function Prototypes - Fatal编程技术网

函数原型调用另一个函数原型javascript

函数原型调用另一个函数原型javascript,javascript,function-prototypes,Javascript,Function Prototypes,我在类类型原型中定义了两个方法。 但是当我在函数init中调用函数名hihi时。 当我使用类型为Chat的create实例运行代码single时。 它无法运行并显示错误 TypeError:this.hihi不是HTMLButtonElement.Chat.init(fotozidiqo.js:9:10)中的函数 如何在init函数名中调用此函数。执行此操作时:$('.chat')。打开(“单击”,this.init),jQuery将init()方法的this更改为从$('.chat')返回的元

我在类类型原型中定义了两个方法。 但是当我在函数init中调用函数名hihi时。 当我使用类型为Chat的create实例运行代码single时。 它无法运行并显示错误

TypeError:this.hihi不是HTMLButtonElement.Chat.init(fotozidiqo.js:9:10)中的函数

如何在init函数名中调用此函数。

执行此操作时:
$('.chat')。打开(“单击”,this.init)
,jQuery将
init()
方法的
this
更改为从
$('.chat')
返回的元素。这就是为什么调用
this.hihi()时它是未定义的在init方法中,因为它不存在于
HTMLElement

因此,为了获得正确的
this
您必须像这样绑定
聊天
原型的
this

function Chat() {
    // hander vent //
    // this.message_text.on("keyup click", this.saveMessage);
    $('.chat').on("click", this.init);
}

Chat.prototype.init = function() {
    var sef = this;
    this.hihi();
}
Chat.prototype.hihi = function() {
    return 2;
}

let chat = new Chat();
如果您想调试它,可以在
init()
方法上
console.log(this)
,您将看到
HTMLElement


this.init.bind(this)
这不是范围问题<代码>此
不称为“范围”。您能建议我更正吗solution@tomnyson更改此选项,
$('.chat')。在(“单击”,this.init.bind(this))应该完成这项工作。
function Chat() {
    $('.chat').on("click", this.init.bind(this));
}