2013-06-29 5 views
-2
var x = function(){ 
    this.add = function (a,b){ return a + b;} 
} 

var x = function(){}; 
x.add = function (a,b){ return a + b;}; 

var x = function(){} 
x.prototype.add = function (a,b){ return a + b;} 

var x = {}; 
x.add = function (a,b){ return a + b;} 

위의 다양한 선언 사이의 차이점을 설명 할 수 있습니까?다른 JavaScript 패턴 간의 차이점

감사

+3

** 1) ** 하나는 함수 안에'this'에 함수를 넣지 만'this'가 무엇인지 모릅니다. ** 2) ** 함수에 함수를 추가합니다. ** 3) ** 함수의 프로토 타입 객체에 함수를 추가합니다. ** 4) **는 평범한 객체를 생성하고 그것에 함수를 추가합니다. ..... 차이점은 무엇입니까? 너 이해 하지마? 무엇을 알아 들었 니? 그 중 어떤 것을 이해합니까? 귀하의 질문은 모호합니다. –

+0

도움 주셔서 감사합니다. @CrazyTrain. 여기에 내 대답을 얻었다 http://stackoverflow.com/questions/310870/use-of-prototype-vs-this-in-javascript – Arun

답변

2
  1. 는 '추가'공공 방법이있을 것이다 new x를 사용하여 인스턴스화 할 수있는 '클래스', '이'여기, 인스턴스화 된 것입니다 후 자체를 객체를 참조 선언합니다.

  2. 함수 x에 '정적'메서드를 추가합니다. 함수가 개체이기 때문에 가능합니다.

  3. x의 프로토 타입에 'add'함수를 추가하면 모든 x 인스턴스가 상속됩니다.

  4. 개체 x에 'add'속성을 추가하고이를 함수 정의로 설정합니다. 클래스를 만들지 않고 인스턴스를 만드는 것과 같습니다.

+0

답변 주셔서 감사합니다 @ Lex. 이것은 http://stackoverflow.com/questions/310870/use-of-prototype-vs-this-in-javascript에 대한 중복 된 질문이었습니다. – Arun