var Test = function()
{
this.print = function() {console.log('this print');}
};
Function.prototype.print = function(){console.log('Function.prototype.print');};
Object.prototype.print=function(){console.log('Object.prototype.print');};
Test.prototype.print = function(){console.log('Test.prototype.print');};
Test.print = function(){console.log('Test static print');};
Test.print();//정적 메서드 static
// new Test().print();
new 연산자로 생성한 객체의 print 멤버함수를 호출해보면 안다.
처음엔 생성자 함수 Test 의 print 를 호출한다.
생성자 함수의 print 멤버함수를 삭제하면 Test.prototype.print 를 호출한다.
Test.prototype.print 를 삭제하면 Object.prototype.print 를 호출한다.
정적 메서드일 경우
Test static print 를 호출하고, 걔를 삭제하면 함수 자체의 프로토타입 Function.prototype.print 호출
Function.prototype.print 를 삭제하면 자바스크립트의 최종 클래스인 Object.prototype.print 를 호출한다.
'코드 > JS' 카테고리의 다른 글
&&연산자 (0) | 2013.11.28 |
---|---|
프로토타입 심화 (0) | 2013.11.26 |
제이쿼리 요소 존재 확인, 자식요소존재 확인 (0) | 2013.11.22 |
숫자 3단위마다 콤마 삽임 (0) | 2013.11.21 |
Javascript DOM Ready (0) | 2013.10.23 |