고려 다음의 예프로토 타이핑
var Foo = function(){
this.identity = 'Foo';
};
Foo.prototype.bar = function(){
this.identity = 'bar';
};
var fooInstance = new Foo(),
bar = new fooInstance.bar();
나는 fooInstance
변수를 얻을 수있는 방법 bar
내
, 질문? Foo
의 자녀가 부모를 fooInstance
으로 인식 할 수있는 방법이 있습니까? 예를 들어, bar
에 fooInstance
을 반환하는 함수를 어떻게 만들 수 있습니까? 약간주의해야 할 점은 bar는 prototype
명령을 사용하여 만들어 져야하며 Foo
에 중첩되어 단순히 그런 식으로 Foo
인스턴스에 액세스 할 수는 없다는 점입니다.
내 아이디어
왜 그들은 작동하지 않음차라리 사용하지 것이다 쉽게 읽을 수있는 코드를 작성하는 목적으로하지만 너무
var Foo = function(){
this.identity = 'Foo';
};
Foo.prototype.createBar = function(){
var parent = this;
function bar(){
this.parent = parent;
this.identity = 'bar';
};
return new bar();
};
var fooInstance = new Foo(),
bar = fooInstance.createBar();
같은 기능을 다시 할 수있을 것입니다 필요하지 않다면이 방법.
또한 명확한 설명
날 맥락에서 질문을 넣어 보자. 캔버스 요소의 모든 컨텍스트에 새 메서드가 포함되도록 CanvasRenderingContext2D에서 프로토 타입을 작성하고 있습니다. 그 메소드 foo를 호출 해, 문맥이 작성된 캔버스 문맥이라고 가정합니다. foo 함수가 컨텍스트 변수를 사용할 수 있도록 "new context.foo()"와 같은 변수를 만드는 방법은 무엇입니까?
는'fooInstance' 무엇입니까? 'Foo'의 '어린이'와 '부모'는 무엇입니까? 당신이 전화하고 있지만 정의하지 않는 그'bar' 메소드는 무엇입니까? "프로토 타입 명령"이란 무엇입니까? – Bergi
Btw, [이 답변] (http://stackoverflow.com/questions/13418669/javascript-do-i-need-to-put-this-var-for-every-variable-in-an-object/13418980# 13418980) 변수와 속성 간의 차이점을 이해하는 데 도움이 될 수 있습니다. – Bergi
나는 문맥 안에 질문을 두게한다. 캔버스 요소의 모든 컨텍스트에 새 메서드가 포함되도록 CanvasRenderingContext2D에서 프로토 타입을 작성하고 있습니다. 그 메소드 foo를 호출 해, 문맥이 작성된 캔버스 문맥이라고 가정합니다. foo 함수가 컨텍스트 변수를 사용할 수 있도록 "new context.foo()"와 같은 변수를 만드는 방법은 무엇입니까? –