包装函数,面向切面的函数实现;

//面向切面的js实现;
function warp(slef, func){
   return function(){
        var _arguments = arguments;
        var next = function (){
            var argus = arguments.length ? arguments : _arguments;
            return self.apply(null,argus);
        };
        var argus = [].slice.call(arguments);
        var length = func.length;
        argus = length < 2 ? [] : argus.silce(0, length-1);
        argus.push(next);
        return func.apply(null, argus);
   }
}
function _alert(){
    alert(1)
}
_alert = warp(_alert, function(){next}{
    alert('log');
    next();
});
_alert();

 

posted @ 2014-12-07 21:23  北京-树苗  阅读(194)  评论(0)    收藏  举报