需要帮助使用John Resig的Simple Javascript继承

Mos*_*vah 4 javascript

John Resig的简单Javascript继承:http://ejohn.org/blog/simple-javascript-inheritance/

我试着这样做:

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

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

    someVariable: "SomeString"
});

var someClass = new SomeClass();
Run Code Online (Sandbox Code Playgroud)

这应该提醒"someString",但它并没有因为关闭函数内部someFunction,价值并不指类,它被改变.这使我无法访问闭包函数内的类的属性和函数.

有什么建议?

Jam*_*ong 6

我相信你的问题在于"这个"指的是什么."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();
Run Code Online (Sandbox Code Playgroud)

非常晚编辑:另见: