자, 2 주 전, 저는 자바 스크립트에서 "모듈 패턴"에 대해 배웠습니다. "나는 소위 것을 기대하지 않았다, 그러나모듈 패턴 및 "전용 속성"
var myModule = myModule || {};
myModule.User = (function(){
"use strict";
// "private" attribut
var id
//constructor
var User = function(l_id){
id = l_id;
};
//"public" method
User.prototype.getId = function(){ return id };
return User;
})();
var u2 = new myModule.User(2);
var u1 = new myModule.User(1);
console.log(u2.getId()); // print 2
console.log(u1.getId()); //print 2 oO
:
var module = (function() {
// private variables and functions
var foo = 'bar';
// constructor
var module = function() {
};
// public methods
module.prototype = {
something: function() {
}
};
// return module
return module;
})();
var my_module = new module();
나는 매우 흥분했다, 그래서 나는 바로 내 자신의 테스트를 시작 : 내가 찾은 모든 예제처럼 기본적으로 갔다 개인 "attribut"id "는 인스턴스 변수가 아니 었습니다. 그리고 내가주의를 기울 였다면, 나는 그러한 변수의 범위를 알아 차렸을 것이다 ... 나는 "개인 변수와 함수"주석을 끔찍하게 잘못 이해했다 ...
그럼에도 불구하고, 나는 개인 모듈 내의 인스턴스 변수.
당신이 "모듈을 mixe 수있는 더 좋은 방법이 있나요 ...myModule.User = (function(){
"use strict";
//constructor
var User = function(id){
this.getId = function(){ return id; };
};
return User;
})();
그러나 더 이상 아무 프로토 타입 avantages 없다 : 순간 내가 찾은 유일한 해결책에 대한
이 예전의 좋은 방법입니다 패턴 "과 개인 인스턴스 변수의 사용?
고마워요! 이것은 "모듈"을 더 잘 이해하는 데 도움이되었습니다. 모듈 스코프는 정적 공유 변수를위한 것입니다! –
찾고있는 것이면 답을 받아 들일 수 있습니다. :) –