글로벌 컨텍스트로 볼 수있는 특정 컨텍스트에서 JavaScript 기능/코드를 어떻게 실행할 수 있습니까? 이것은 (호출/적용) 변경과 동일하지 않습니다. 이는 '창'변경과 같습니다. 나는 다음과 같은 코드가있는 경우JavaScript : 특정 컨텍스트에서 코드 실행
기본적으로 :
(function() { x.value = 5; return value; })()
은 코드 자체를 변경하지 않고 (귀국일 5)를 작동하게하는 방법은 무엇입니까?
또한 가능한 경우 x의 컨텍스트에서 코드를 실행하는 것이 내 생각이지만 어쩌면 다른 해결책이 있을까요?
UPDATE :
원래 문제 : 내가 셀레늄을 사용하여 북마크를 테스트하기 위해 노력하고 있습니다. 북마크는 내가 페이지에서 북마크를 얻을 $의 selenium.get_eval를 사용하여 실행하고 get_eval 전역 객체의 맥락에서 셀레늄의 일부 개체 자체가 아닌 창입니다
window.SomeObject = {...}; SomeObject.doSomething();
할 수 있다고 가정합니다. window.SomeObject
셀렌 컨텍스트 창 때문에 여전히 작동하지만 그냥 SomeObject
작동하지 않습니다.
다른 가능한 해결책을 알고 있다고 생각하지만 원래 질문에 대한 대답이 있는지 알고 싶습니다.
업데이트 2 (솔루션) : (geowa4에 의해 답변에 따라)
최종 솔루션 :
x = {}; with(x) { return (function() { x.value = 5; return value; })(); }
정확히 무엇을 하려는지 설명해 주시겠습니까? – dusoft
우선,'x.value'를 설정했지만'value' 만 반환하므로 코드 *는 "5를 반환하지 않습니다". 두 번째로, 무엇? –
게시물의 끝에 설명이 추가되었습니다. –