ホームページ  >  記事  >  ウェブフロントエンド  >  JSは自身のresend_javascript手法を実装します

JSは自身の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('再送信できません: メソッドが見つかりません');

var foundMethod = step[name];
varbackup = argument.callee; make(this,backup);
r = foundMethod.apply(this, Array.prototype.slice.call(arguments, 1));
return r
}
};

return function(name, args__) {
var old = this.resend
this.resend = make(this, old); 🎜>rv = this.resend.apply(this, argument);
this.resend = オリジナル;
}
}()
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。