모든 변수를 "공개"로 지정하지 않는 한, 즉 Function
직접 또는 prototype
속성을 통해 해당 변수를 구성원으로 만듭니다 .
var C = function( ) {
this.x = 10 , this.y = 20 ;
this.modify = function( ) {
this.x = 30 , this.y = 40 ;
console.log("(!) C >> " + (this.x + this.y) ) ;
} ;
} ;
var A = function( ) {
this.modify = function( ) {
this.x = 300 , this.y = 400 ;
console.log("(!) A >> " + (this.x + this.y) ) ;
} ;
} ;
A.prototype = new C ;
var B = function( ) {
this.modify = function( ) {
this.x = 3000 , this.y = 4000 ;
console.log("(!) B >> " + (this.x + this.y) ) ;
} ;
} ;
new C( ).modify( ) ;
new A( ).modify( ) ;
new B( ).modify( ) ;
몇 가지 변경 사항을 알 수 있습니다.
가장 중요한 것은 가정 된 "슈퍼 클래스"생성자에 대한 호출이 이제이 줄 내에서 암시 적이라는 것입니다.
<name>.prototype = new C ;
모두 A
와 B
지금 가지고있는 것 개별적으로 수정 구성원을 x
하고 y
있는 우리가 작성한 것인지의 경우되지 않을 것 ... = C
대신.
그런 다음 x
, y
그리고 modify
모든 "공공"회원 그래서 다른 할당하는 것을 Function
그들에게를
<name>.prototype.modify = function( ) { }
Function
해당 이름으로 원본 을 "무시"합니다 .
마지막으로, "super-class"에 대한 암시 적 호출은 "super-class"를 가정 된 "sub-classes" 의 속성으로 설정할 때 다시 실행될 것이기 때문에 선언 modify
에서 호출을 수행 할 수 없습니다 .Function
prototype
하지만 이것은 자바 스크립트에서 이런 종류의 일을하는 방법입니다.
HTH,
FK
modify
이러한 두 가지 차이가있다 .. - 방법하지만 중첩 된 함수는 아닌