1 回答

TA貢獻1836條經驗 獲得超5個贊
Function.prototype.before = function() {
for (var i=0; i<arguments.length; i++) {
if (typeof arguments[i] === 'function') {
arguments[i]()
}
}
this()
}
在chrome的控制臺測試可以達到你想要的效果,,
不過可能會有兼容性問題
更新
好像沒什么意思,不過還是折騰了一下
Function.prototype.before = function() {
this.beforeArrFunc = []
for (var i=0; i<arguments.length; i++) {
if (typeof arguments[i] === 'function') {
this.beforeArrFunc.push(arguments[i])
}
}
}
Function.prototype.execute = function() {
for (var i=0; i<this.beforeArrFunc.length; i++) {
this.beforeArrFunc[i]()
}
this()
}
var a = function() {
console.log(1)
}
a.before(function() { console.log(2) })
a.execute()
這樣的缺點是,具體調用時需要另一個實例方法來輔助
好處就是也可以直接調用a()
,這樣不會調用到before function
添加回答
舉報