이 할 수있는 매우 간단한 일이며, 상속 애플리케이션을 위해 중대하다 :
당신은 단순히 당신이 원하는대로 돌아가 어쩌면 방법을 통해 그것을 반환, 나중에 다른 기능에서 그것을 다시 그 위에 구축.
예는 다음과 같습니다
function a(){
var b;
//assignment to b and other stuff
return b;
};
// or
function a(){
var b, result;
//assignment to b and other stuff
returnInitial: function() {
return b;
}
// other stuff with b
return result;
};
나중에 그렇게 '기생 상속'과 같은 새로운 방법을 모든 로컬 변수를 사용하여 추가 다른 함수 내에서이 모든 기능을 시작할이라는 사용할 수 있습니다
var a function() {
var b, result;
//assignment to b and other stuff
returnInitial: function() {
return b;
}
// other stuff with b
return result;
}
var extendedA function() {
var base = new a;
var b = a.returnInitial();
a.addToB = function (c) {
var sum = c + a.returnInitial();
return sum;
}
}
이제받을 수 있습니다
var smt = new extendA();
var c = 12; //some number
var sumBC = extendA.addToB(c);
i, jou 객체 처리에 대한 doug crockford 강의에 대한 yutube 검색을 권장합니다.
새로운 인스턴스를 초기화하지 않으면 자바 스크립트에서 사용하는 동적 객체 처리 이후에 새 객체를 사용해야하므로 원래 객체가 손상 될 수 있습니다.
직접 할 수없고'b'를'this'의 속성으로 지정하면'c'의 속성이됩니다. 그 중 하나, 또는'b'의 값을 반환하는 메소드/함수를 첨부하십시오. (당신은 생성자 함수에서 그 함수를 생성해야 할 것이고, 프로토 타입 메소드에서도 사용할 수 없을 것입니다.) –
클로저가이 상황에서 도움이 될 것이라고 생각합니까? 나는 틀릴 수 있었다. – aug
코드는 제 것이 아니지만 userscript와 Scriptish 만 사용하여 코드를 변경해야합니다. 나는 세계화를 할 수 없으며, 의도적으로 로컬 스크립트로 작성하여 사용자 스크립트 작성을 방지했습니다. 한 번 더 : 나는 USERSCRIPT를 쓰고 있습니다. 피들러 사용 및 스크립팅 엔진은 좋은 해결책이 아닙니다. – KOLANICH