var myapp = {};
myapp.color = "green";
myapp.paint = function(node){
node.style.color = this.color;
};
var findNodes = function(callback, callback_obj){
var node;
if(typeof callback === "function"){
callback.call(callback_obj, node);
}
}
findNodes(myapp.paint, myapp);
callback.call 사용시 첫번째 파라미터로 myapp을 넘겨서 this가 DOM의 window가 아닌 myapp임을 인지시켜 준다.
.call()을 사용하지 않고 단순히 callback(node)라고 한다면 this.color에서 this가 myapp이 아닌 DOM의 window를 가리킬 것이다.
callback.call()과 callback.apply()에 관해서는 여기 참조