printData를 호출 할 때 아래 클래스가 있습니다. this.collection이 정의되지 않습니다.javascript의 프로토 타입에서 객체 속성에 액세스하는 방법은 무엇입니까?
printData() 내부의 프로토 타입에서 this.collection에 어떻게 액세스합니까? 또는 클래스 구조를 변경해야합니까? 실제로 객체는 인턴이 객체를 계층 구조로 반환하는 함수를 반환합니다.
미리 감사드립니다.
샘플 클래스 :
var DbProvider = (function() {
function DbProvider(db) {
var that = this; // create a reference to "this" object
that.collection = db;
}
DbProvider.prototype.create = function() {
return {
action: function() {
var y = {
printData: function() {
alert('Hello ' + this.collection.Name);
}
};
return y;
}
};
};
return DbProvider;
})();
사용법 : ES5 구문과 호출 구조를 유지
var a = new DbProvider({ "Name": "John" });
a.create().action().printData();
에
that
를 사용할 수 있을까? – MayorMonty코드에서 'that'이라는 레이블이 붙은'this'에 대한 참조를 만듭니다. 그 대신에'that'을 사용할 수 있습니까 (의도하지 않은 말장난) – MayorMonty
그 객체에 액세스 할 수 없습니다. 또한 ES5를 사용하여 일반 자바 스크립트로 만들 수 있습니까? –