- 전역변수의 최소화. 필수
- var a=b=0; 이면 b 는 전역변수가 된다. <- 안티패턴
- 암묵적 타입캐스팅 피하기 , 비교는 ===
- eval() 피하기
- parseInt 의 두번째 매개변수(진수선택)은 반드시 넣어야 한다. 왜냐면 0으로 시작되는 문자열을 8진수로 오해해서 가져올수 있기때문에. parseInt("06",10); 와 parseInt("06")은 다른거다.
- javascript 에서는 중괄호는 앞의 명령문과 동일한 행에 두어야 한다. 그렇지 않으면 javascript 엔진에서 해당줄에 자동으로 세미콜론을 삽입하기 때문이다.(한줄 아래에 중괄호 두는 것은 자바스크립트에서는 금지)
- new Object 로 객체 생성 <- 안티패턴
- new Array로 배열생성 <- 안티패턴 (권장 : 대괄호로 생성)
- 배열인지 판별은 Array.isArray(배열) 로 하는것을 권장
- 설정객체패턴( 인자를 객체로 전달하는 방식)으로 하면 나중에 유지보수가 쉽다.
- 커링에 대해서도 이해하자.
- 클로져로 비공개 멤버 구현가능
function A(){ var privateValue ='pv'; this.getName=function(){return privateValue;}
- 체이닝 패턴은 this 를 리턴하면됨.
- 메쏘드 패턴도 이해하자.
- 상속방법
inherit(Child,Parent){ C.prototype = new P();} ...overriding?
- 디자인패턴
- 싱글톤
//싱글톤객체 즉시실행함수형태
var Stone = (function(){
var instance;
function init() {
function privateMethod(){
console.log( "private 메쏘드" );
}
var privateVariable = "Private 멤버변수";
return {
publicMethod: function () {
console.log( "public 메쏘드" );
},
publicProperty: public 멤버변수"
};
}; //init
return {
// getInstance() 하면 인스턴스가 없다면 생성하고 있다면 인스턴스를 리턴
// 결국 instance 는 init() 함수 객체를 바라보게 된다.
getInstance: function () {
if ( !instance ) {
instance = init();
}
return instance;
}
};
})();
var s1 = Stone.getInstance();
var s2 = Stone.getInstance();
console.log( s1 === s2 ); // true
//s1.changepublic();
s1.publicProperty="hey";
console.log( s2.publicProperty ); // true
- factory pattern
function Pizza_cheeze() {console.log('cheeze');
}
function Pizza_pineapple() {
console.log('pineapple');
}
function PizzaFactory(whichStyle) {
var pizza = this.createPizza(whichStyle);
this.bake(pizza);
this.boxing(pizza);
return pizza;
}
PizzaFactory.prototype.pizzaClass = Pizza_cheeze;
PizzaFactory.prototype.bake = function(pizza){
console.log('bake');
};
PizzaFactory.prototype.boxing = function(pizza){
console.log('boxing');
};
PizzaFactory.prototype.createPizza = function(whichStyle) {
switch(whichStyle) {
case 'cheeze':
this.pizzaClass = Pizza_cheeze;
break;
case 'pineapple':
this.pizzaClass = Pizza_pineapple;
break;
};
return new this.pizzaClass;
};
var pizzacheeze = new PizzaFactory('cheeze');
var pizzapineapple = new PizzaFactory('pineapple');
- Decorator Pattern
//기본객체
console.log('car frame');
Car.prototype.getPrice = function() {
//데코레이터 배열
Car.CarDecorators.powerWindow = {
var price = this._super.getPrice();
//
Car.prototype.decorate = function (decorator) {
overrides = this.constructor.CarDecorators[decorator],
// Create prototype chain
newobj._super = F.prototype;
// Mixin properties/methods of our decorator
// Overriding the ones from our prototype
if (overrides.hasOwnProperty(i)) {
newobj[i] = overrides[i];
car2 = car2.decorate('powerWindow');
console.log(car2.getPrice()); // outputs $CDN52.50
Related Posts:
[日本語-複合動詞] にじり出す
[日本語-複合動詞] にじり出す
Sugoi Ebooks(Write in English)
Naver Cafe
Sugoi Japanese
Find a Job in Japan
[日本語-複合動詞] にじり出す
[日本語-複合動詞] にじり出る
[日本語-複合動詞] にじり出す
にじりだす
《드물게》무릎 걸음 (무릎을 굽힌 모양으로)을 하… Read More
[日本語-複合動詞] ふざけ掛かる
[日本語-複合動詞] ふざけ掛かる
Sugoi Ebooks(Write in English)
Naver Cafe
Sugoi Japanese
Find a Job in Japan
[日本語-複合動詞] ふざけ掛かる
[日本語-複合動詞] ふざけ掛かる
ふざけかかる
(사람에게) 재롱을 부리며 달라붙다.
강아지가 아이에게 재롱을 부렸다.
… Read More
[日本語-複合動詞] 呼び戻す
[日本語-複合動詞] 呼び戻す
Sugoi Ebooks(Writen in English)
Naver Cafe
Sugoi Japanese
Find a Job in Japan
[日本語-複合動詞] 呼び戻す
[日本語-複合動詞] 呼び戻す
:よびもどす
(1) 불러서, 원래 자리로 되돌리다.
사장은, A씨를 홍콩 지사에서 도쿄 본사로… Read More
[日本語-複合動詞] 居残る
[日本語-複合動詞] 居残る
Sugoi Ebooks(Writen in English)
Naver Cafe
Sugoi Japanese
Find a Job in Japan
[日本語-複合動詞] 居残る
[日本語-複合動詞] 居残る
:いのこる
다른 사람이 돌아간 후에도, 돌아가지 않고 남아 있다.
나는 언제나 다른 사람이 돌아간 … Read More
[日本語-複合動詞] 押し開く
[日本語-複合動詞] 押し開く
Sugoi Ebooks(Writen in English)
Naver Cafe
Sugoi Japanese
Find a Job in Japan
[日本語-複合動詞] 押し開く
[日本語-複合動詞] 押し開く
:おしひらく
이쪽에서 맞은 편으로 밀어서 열다.
나는 문을 밀어 젖혔다.
私はドアを押し開いた.… Read More
0 comments:
댓글 쓰기