43页AOP_JavaScript设计模式与开发实践书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > JavaScript设计模式与开发实践 > 43页AOP
GeniusLc JavaScript设计模式与开发实践 的书评 发表时间:2015-06-05 09:06:38

43页AOP

  原书43页,在原函数之前插入一个函数console.log(1),之后也插入一个函数console.log(3)。为什么输出不是1223而是123呢?原函数不是被调用两次了?

  原书43页,在原函数之前插入一个函数console.log(1),之后也插入一个函数console.log(3)。为什么输出不是1223而是123呢?原函数不是被调用两次了?

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“43页AOP”的回应

小马甲 2015-09-30 17:25:36

多谢楼上,明白啦 (:

爱撒娇的陈老师 2015-09-29 14:09:27

@北京+张小喵 func 函数本身并没有改变,你把最后两行代码改成这样:

var new_func = func.before(function (){
console.log(1);
}).after(function(){
console.log(3);
});
new_func();

你再体会下吧。

小马甲 2015-09-29 13:00:56

我的代码是这样的呢:
Function.prototype.before = function(beforeFn) {
var _self = this;
return function() {
beforeFn.apply(this, arguments);
return _self.apply(this, arguments);
};
};
Function.prototype.after = function(afterFn) {
var _self = this;
return function() {
var ret = _self.apply(this, arguments);
afterFn.apply(this, arguments);
return ret;
};
};
var func = function() {
console.log(2);
}
func.before(function (){
console.log(1);
}).after(function(){
console.log(3);
});
func();

小马甲 2015-09-29 12:58:02

我这边为啥输出的是 2 ,没有1 和 3 呢?

爱撒娇的陈老师 2015-06-06 20:34:31

如果你有用 jQuery 的經驗的話,這就是個鏈式的使用啊,上一鏈的輸出等於下一鏈的輸入,而原函數只是第一鏈的返回的一部分,只調用了一次。