Javascriptデザインモード-17-装飾者モード
4761 ワード
Javascript設計モード-17-装飾者モード
概要
デザイナモードは、このクラスから派生した他のオブジェクトに影響を与えることなく、オブジェクトに追加のロールを動的に追加できます.
メリット
装飾関数の実装
// Function before after
Function.prototype.before = function (beforeFn) {
//
var _self = this;
// ‘ ’
return function () {
beforeFn.apply(this, arguments);
//
return _self.apply(this, arguments);
}
}
// before
Function.prototype.after = function (afterFn) {
var _self = this;
return function () {
var ret = __self.apply( this, arguments );
afterfn.apply( this, arguments );
return ret;
}
}
//
var ajax = function (type, url, param) {
console.log(' ajax ', param);
}
var getToken = function () {
return 'Token';
}
//
ajax = ajax.before(function (type, url, param) {
param.Token = getToken();
});
ajax('get', 'http://xxx.com', {name: 'ajax'}); // ajax {name: "ajax", Token: "Token"}