需要使用John Resig的帮助’;s的简单Javascript继承
John Resig的简单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
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-
- _.绑定-