>  기사  >  웹 프론트엔드  >  JS는 self의 resend_javascript 기술을 구현합니다.

JS는 self의 resend_javascript 기술을 구현합니다.

WBOY
WBOY원래의
2016-05-16 18:22:371151검색

ECMA V5는 오랫동안 기다려온 Object.getPrototypeOf 메서드를 정의합니다. 이 메서드는 유형 정보에 관계없이 객체([[prototype]])의 프로토타입을 가져올 수 있습니다. 이를 기반으로 재전송을 구성할 수 있습니다. (Chrome 5, IE9를 사용하세요. 3차 버전 테스트 미리보기)

코드 복사 코드는 다음과 같습니다.

obj.resend = function () {
var pof = Object.getPrototypeOf;
var has = function() {......} // hasOwnProperty 캡슐화
var make = function(obj, old) {
return function(name, args) {
var step = pof(obj),
r
while (step && !has(step, name)) step = pof(step); if (!step) throw new Error('재전송할 수 없음: 메서드 누락');

varfoundMethod = step[name]
var backup =args.callee
this.resend = make(this, 백업);
r =foundMethod.apply(this, Array.prototype.slice.call(arguments, 1))
this.resend = old
return r
}
};

return function(name, args__) {
var rv;
var old = this.resend;
make(this, old); 🎜>rv = this.resend.apply(this, 인수);
this.resend = 원본;
return rv;
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.