小编bar*_*rry的帖子

Javascript定义类

定义课程的最佳方法是什么?我知道这一事实大部分时间都是您喜欢使用的选择,但这3个例子之间的直接区别是什么?

例1

var Class = (function(){
    function Class() {
      this.test = 'test'                
    }
    return Class;
})();

var c = new Class();
console.log(typeof Class);
console.log(c.test);
Run Code Online (Sandbox Code Playgroud)

例2

var Class2 = function(){
      this.test = 'test'                
};

var c2 = new Class2();
console.log(typeof Class2);
console.log(c2.test);
Run Code Online (Sandbox Code Playgroud)

例3

function Class3(){
      this.test = 'test'                
};

var c3 = new Class3();
console.log(typeof Class3);
console.log(c3.test);
Run Code Online (Sandbox Code Playgroud)

有时候我也会这样使用它:var Class =(function(){var Private = {},Public = {};

    Private._doSomething = function() {
        // something
    }

    Public.doSomethingElse = function() {
        // something else
    }
    return …
Run Code Online (Sandbox Code Playgroud)

javascript class

7
推荐指数
1
解决办法
1004
查看次数

jQuery off()和bind(this)

我试图从一个元素中删除一个事件处理程序,附加jQuery on()并删除它off().这通常会起作用,但在这种情况下它不起作用.

this.element.on('click', this.handler);
this.element.off('click', this.handler);
Run Code Online (Sandbox Code Playgroud)

这将工作,但在我的情况下,它不起作用,因为将范围绑定到处理程序.

this.element.on('click', this.handler.bind(this));
this.element.off('click', this.handler.bind(this));
Run Code Online (Sandbox Code Playgroud)

由于范围被绑定到处理程序,因此该off方法无法从该元素中分离事件.

我尝试过使用引用,如下所示:

var self = this;
this.element.on('click', this.handler.bind(self));
this.element.off('click', this.handler.bind(self));
Run Code Online (Sandbox Code Playgroud)

但没有运气......任何人都有想法解决这个问题?

javascript jquery bind

0
推荐指数
1
解决办法
529
查看次数

标签 统计

javascript ×2

bind ×1

class ×1

jquery ×1