new를 빼먹고 객체를 생성하는 경우 내부의 this가 전역객체를 가리키게 된다.
new를 강제하는 패턴을 통해 막을 수 있다.
function Waffle(){
if(!(this instanceof Waffle)){
return new Waffle();
}
this.tastes = "yummy";
}
Waffle.prototype.wantAnother = true;
var first = new Waffle(),
second = Waffle();
console.log(first.tastes);
console.log(second.tastes);
console.log(first.wantAnother);
console.log(second.wantAnother);
콜백패턴 : 전달인자로 콜백함수를 전달해서 실행한다.
1.함수만 전달하는 경우
var findNodes = function(callback){
//...
if(typeof callback === "function"){
callback(found);
}
//...
};
2.함수와 객체를 전달하는 경우
var fileNodes = function (callback, callback_obj){
//...
if(typeof callback === "function"){
callback.call(callback_obj);
}
//...
};
3.객체를 전달하고 해당하는 메소드를 문자열로 전달하는 경우
var findNodes = function(callback, callback_obj){
if(typeof callback === "string"){
callback = callback_obj[callback];
}
//...
if(typeof calback === "function"){
callback.call(callback_obj);
}
//...
};
'IT > 개발' 카테고리의 다른 글
php 일단위로 for문 돌리기 (0) | 2014.11.26 |
---|---|
단일 연결 리스트 [singly linked list] (0) | 2014.11.25 |
php 배열 관련 함수 (0) | 2014.04.16 |
php call by reference & php call by value (0) | 2014.04.15 |
php 문자열 함수 (0) | 2014.04.10 |