gpt4 book ai didi

javascript - 如何在 JavaScript 中调用当前对象的公共(public)方法?

转载 作者:行者123 更新时间:2023-11-30 13:06:47 27 4
gpt4 key购买 nike

此刻我已经走到这一步了。

function Class() {

var privateMethod = function () {
return 'private'
}

this.publicMethod = function () {
return 'public'
}

var _constructor = function () {
$(document).on('click', _onClick)
}

var _onClick = function () {
// My error is `this`, focus now on the click event, but I need the object itself
console.log(privateMethod())
console.log(this.publicMethod())
}

_constructor()
}


$(document).ready(init)

function init() {
new Class()
}

问题是,在点击事件中,我无法调用 publicMethod。我可以调用私有(private)方法。

我怎样才能做到这一点?

最佳答案

问题是,在您的处理程序中,您丢失了上下文(this 不再表示您的 Class 实例,而是表示触发事件的对象。您需要创建一个闭包this 的作用域版本以保留该上下文。

var self = this;
var _onClick = function () {
// My error is `this`, focus now on the click event, but I need the object itself
console.log(privateMethod())
console.log(self.publicMethod())
}

关于javascript - 如何在 JavaScript 中调用当前对象的公共(public)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15388595/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com