다른 유형의 객체를 만들 수 있도록 Javascript로 "클래스"팩토리를 만들려고합니다.새 javascript 함수에서 self를 참조하는 방법은 무엇입니까?
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 (자기가) 항상 창으로 언급하고, 나는 ' d는 객체 자체를 참조하기를 좋아합니다.
범위 문제는 알고 있지만 개체에 대한 참조를 만드는 방법은 혼란 스럽습니다.
다른 유형의 객체를 만들 수 있도록 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 (자기)는 항상 윈도우를 참조하고, 나는 그것이 개체 자체를 참조하고 싶습니다.
범위 문제는 알고 있지만 개체에 대한 참조를 만드는 방법은 혼란 스럽습니다. 예를 들어
, 내가하고 싶었던 경우 :
var myObject = Class({
initialize: function() {
$('#myDiv').click(function() {
self.anotherFunction();
});
},
anotherFunction: function() {
alert('hi');
}
});
내가 자기와 함께 "인 myObject"를 참조 할 수 있어야합니다 ...
시도'대신'self'의 this'? –
'self'는 적어도 웹킷에서 전역 개체를 가리 킵니다. – dfsq
오른쪽 ... 그래서 어떻게 현재 개체를 가리 킵니까? – johnnietheblack