Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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
需要使用John Resig的帮助’;s的简单Javascript继承_Javascript - Fatal编程技术网

需要使用John Resig的帮助’;s的简单Javascript继承

需要使用John Resig的帮助’;s的简单Javascript继承,javascript,Javascript,John Resig的简单Javascript继承: 我试着做这样的事情: var SomeClass = Class.extend({ init: function() { var someFunction = function() { alert(this.someVariable); }; someFunction(); // should alert "someString" }, som

John Resig的简单Javascript继承:

我试着做这样的事情:

var SomeClass = Class.extend({
    init: function() {
        var someFunction = function() {
            alert(this.someVariable);
        };

        someFunction(); // should alert "someString"
    },

    someVariable: "SomeString"
});

var someClass = new SomeClass();
这应该会提醒“someString”,但不会,因为在闭包函数somesfunction中,This的值不引用类,而是发生了更改这使我无法访问闭包函数中类的属性和函数。


有什么建议吗?

我相信你的问题在于“this”指的是什么。“this”在本例中指的是函数,而不是对象。你想要的可能是:

var SomeClass = Class.extend({
    init: function() {
        var self = this;
        var someFunction = function() {
            alert(self.someVariable);
        };

        someFunction(); // should alert "someString"
    },

    someVariable: "SomeString"
});

var someClass = new SomeClass();
非常晚编辑:另请参见:

  • $.proxy-
  • _.绑定-

这就是我实际使用的方法,但我来这里是因为我在寻找其他方法。使用此方法使我编写var self=this;一页20次:\n你可以这样做:我认为我们不需要john resig标签!