private 변수를 사용하는 기존 객체에 메서드를 적용하려고합니다. 내가 my_obj.myMethod()를 가면 나는 ID가 정의되지 않은 말하는 오류가자바 스크립트에서 객체 및 전용 변수에 메서드 적용
function a(given_id)
{
var id= given_id;
}
지금 내가 지금 너무
my_obj = new a('some_id');
my_obj.myMethod = function(){
alert(id);
}
처럼 몇 가지 새로운 방법을 적용 할 : 목표는 설정과 같이이다 . id를 공개로 변경하면이 동일한 코드가 작동합니다.
myMethod가 원래 권한있는 메소드로 정의 된 경우 작동 할 수 있기 때문에 왜 이런 일이 발생하는지 이해할 수 없습니다. 내가 생각할 수있는 유일한 것은 myMethod가 권한있는 메소드 대신 public 메소드로 추가된다는 것입니다.
이것에 대한 정보는 크게 감사하겠습니다.
네, 그게 (위에서 언급 한대로) 고칠 것이라고 알고 있지만 id 변수를 비공개로 유지하고 싶습니다. var id는 권한이있는 메소드에서 액세스 할 수 있어야합니다. 객체에 계속 적용하면서 권한있는 메소드로 선언하는 방법은 무엇입니까? – Ori
답을 인라인으로 수정하십시오. –
예, Foo에 Bar를 추가하려는 경우를 제외하고는 작동합니다. 즉, foo.Bar = function() {....}과 같은 것을해야한다는 것을 의미합니다. 이 구문을 사용하면 어떻게 특권으로 선언 할 수 있습니까? 답장을 보내 주셔서 감사합니다. – Ori