function A(x)
{
this.x = x;
}
var obj = new A(5);
alert(obj.x);
이 코드는 매우 간단합니다. 우리에게 중요한 것은 C#에서 클래스 인스턴스를 사용할 때와 마찬가지로 Obj에 x 속성이 할당된 매우 놀라운 결과에 도달했다는 것입니다. 그렇다면 이 부동산은 어떻게 탄생하게 되었나요?
핵심 설명: this.x=x. 이 문장은 속성을 선언하고 할당하는 것입니다. 여기서 우리는 이것이 무엇인지 분명히 묻습니다. this.x를 사용하여 속성을 선언하고 할당할 수 있는 이유는 무엇입니까?
사실 이는 방금 인스턴스화한 obj를 나타냅니다. 이는 생성자 A에서 속성, 메서드 등을 호출하기 위해 obj를 사용하는 것과 동일합니다.
그럼 생성자에서 메소드를 어떻게 정의하나요?
function A(x,y )
{
this.x = x;
this.y = y;
A.prototype.FunX = function(){alert(x)}
A.prototype.FunY = function( ){alert(y)};
}
var obj = new A(5,10)
alert(obj.x)
alert(obj.y); 🎜>obj .Fun 🎜>
코드 복사
코드는 다음과 같습니다.
코드 복사
코드는 다음과 같습니다.
alert(obj.x);
obj.FunX()
A.prototype.FunY = function() {alert("10")};
obj.FunY();
이 코드를 실행하면 팝업 결과가 여전히 이전과 동일하다는 것을 알 수 있습니다. 두 메서드 모두 외부에 정의되어 있고 FunY 메서드는 인스턴스화 후에 정의되었으므로 여기에 아무것도 표시되지 않습니까? 분명히 obj.FunY() 문을 사용하면 코드가 obj를 다시 구성한 다음 이 메서드를 실행합니다. 그러면 코드가 이렇게 변경되면 어떻게 될까요?
코드 복사
코드는 다음과 같습니다.
obj.FunY()
A.prototype .FunY = function(){alert("10")};
분명히 FunY()는 메서드를 실행하지 않습니다. 다음번에는 JavaScript 생성자 및 프로토타입에 대해 이야기해보겠습니다. 질문이나 오류가 있으면 언제든지 수정하고 토론해 주세요.