window.setInterval 메소드의 시간 초과시 기존 객체에서 메소드를 실행할 수 있습니까? 전역 변수를 가지고이 전역 변수의 메서드를 setInterval에 호출함으로써 동일한 결과를 에뮬레이션 할 수 있지만이 메서드를 직접 사용할 수 있는지 알고 싶습니다.window.setInterval을 사용하여 기존 객체에 대한 메소드 실행
최고 감사합니다, Keshav
window.setInterval 메소드의 시간 초과시 기존 객체에서 메소드를 실행할 수 있습니까? 전역 변수를 가지고이 전역 변수의 메서드를 setInterval에 호출함으로써 동일한 결과를 에뮬레이션 할 수 있지만이 메서드를 직접 사용할 수 있는지 알고 싶습니다.window.setInterval을 사용하여 기존 객체에 대한 메소드 실행
최고 감사합니다, Keshav
예, 당신은이 작업을 수행 할 수 있습니다. 당신은 "바인딩"기존 객체가있는 새로운 기능을 확인하기 위해 도우미 함수가 필요 간격 타이머가 당신의 방법 ("것으로 someMethod") 호출 할 때 이제
var someRandomObject = {
someMethod: function() {
// ... whatever
},
// ...
};
// this is a "toy" version of "bind"
function bind(object, method) {
return function() {
method.call(object);
};
}
var interval = setInterval(bind(someRandomObject, someRandomObject.someMethod), 1000);
를, "this"이 포인터를 참조합니다 목적.
"바인드"의 해당 버전이 단순화되었습니다. Prototype, Functional, jQuery 등과 같은 라이브러리는 일반적으로 더 강력한 버전을 제공합니다. 또한 "바인딩"기능은 언젠가 자바 스크립트의 원래 부분이 될 것입니다. — 이미 일부 브라우저에 있습니다.
실제로 무엇을 요구하고 있는지 분명하지 않습니다. 아마도 예제 코드를 붙여 넣을 수 있습니까? 코드를 읽는 것은 일반적으로 누군가의 코드를 읽는 것보다 쉽습니다 :) –