类中的 JavaScript 事件

标签 javascript jquery

我是 JavaScript 类(class)的新手。我有一个 JavaScript 类。我想要的是在console.log中将输出类对象的结果而不是这个元素(mousedown的元素)。我该怎么写呢?

function Transformer (output) {
    this.output = output;
    $(output+' .object').mousedown(function(e){
        console.log(this);
    });
}

var test = new Transformer('.console');

最佳答案

如果要打印类对象本身,则需要在另一个变量中保存对上下文的引用,因为匿名函数中的 this 指向匿名函数本身的上下文:

function Transformer (output) {
    var self = this;
    this.output = output;

    $(output+' .object').mousedown(function(e){
        console.log(self); // will print the object itself
    });
}

或者,您可以使用arrow function完全跳过保存引用:

function Transformer (output) {
    this.output = output;

    $(output+' .object').mousedown(e => {
        console.log(this); // will print the object itself
    });
}

关于类中的 JavaScript 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49751103/

相关文章:

JavaScript --- 如何制定规则来确保用户输入两个特定数字之间的值

javascript - WordPress - Google Map API 标签/进度图 + BuddyPress 成员(member)数

javascript - Android/iOS WebView 未遵循 CORS HTTP 重定向 (30x)

javascript - AJAX 获取状态正常,但 jsonp 回调返回未定义的数据

javascript - 无法从动态文本框发布数据

Javascript - PHP 变量无法在外部 js 文件中访问

javascript - 在 Vue.js 中将组件属性传递给组件的惯用方法是什么?

javascript - 这个正则表达式是什么意思。检查 http 或 https 超链接就足够了吗?

jQuery/Coffeescript - 如果有条件

javascript - 不理解 $(window).width() 的结果