さまざまなタイプのオブジェクトを作成できるように、Javascript で「クラス」ファクトリを作成しようとしています。
これが私が使用している機能です:
var Class = function(methods) {
var klass = function() {
var self = this;
this.initialize.apply(this, arguments);
};
for (var property in methods) {
klass.prototype[property] = methods[property];
}
if (!klass.prototype.initialize) klass.prototype.initialize = function(){};
return klass;
};
それから私はすることができます:
var myObject = Class({
initialize: function() { console.log(self);}
});
var createdObject = new myObject();
ただし、console.log(self) は常に Window を参照しているので、オブジェクト自体を参照するようにしたいです。
これがスコープの問題であることはわかっていますが、オブジェクトへの参照を作成する方法について混乱していますか?
さまざまなタイプのオブジェクトを作成できるように、Javascript で「クラス」ファクトリを作成しようとしています。
これが私が使用している機能です:
var Class = function(methods) {
var klass = function() {
var self = this;
this.initialize.apply(this, arguments);
};
for (var property in methods) {
klass.prototype[property] = methods[property];
}
if (!klass.prototype.initialize) klass.prototype.initialize = function(){};
return klass;
};
それから私はすることができます:
var myObject = Class({
initialize: function() { console.log(self);}
});
var createdObject = new myObject();
ただし、console.log(self) は常に Window を参照しているので、オブジェクト自体を参照するようにしたいです。
これがスコープの問題であることはわかっていますが、オブジェクトへの参照を作成する方法について混乱していますか?
たとえば、やりたい場合:
var myObject = Class({
initialize: function() {
$('#myDiv').click( function() {
self.anotherFunction();
});
},
anotherFunction: function() {
alert('hi');
}
});
「myObject」を自己で参照できるようにする必要があります...