Javascript 中的动态回调
Dynamic callback in Javascript
是否可以为函数/coffeescript 类中封装的每个函数动态添加回调?就像rails
中的after_filter
.
例如:
class Parent
after_every_function_call_myCallback
myCallback: ->
console.log “callback called“
class Child extends Parent
doSomething: ->
console.log “a function“
class Regular
doSomething: ->
console.log “a regular function“
> reg = new Regular()
> reg.doSomething()
< “a regular function“
> child = new Child()
> child.doSomething()
< “a function“
< “callback called“
作为一个功能,这并不存在,但您可以创建一个装饰器,手动应用于原型中的每个函数:
after = (g, f) ->
->
f()
g()
class Parent
myCallback: ->
console.log 'callback called'
class Child extends Parent
doSomething: ->
console.log 'a function'
for k, f of Child::
Child::[k] = after Parent::myCallback, f
child = new Child
child.doSomething()
# a function
# callback called
通过一些抽象,您可以将其重用于其他类,但仍然有点手动:
decorate = (decor, f, clazz) ->
for k, g of clazz::
clazz::[k] = decor f, g
clazz
class Child extends Parent
doSomething: ->
console.log 'a function'
decorate after, Parent::myCallback, Child
相关文章:
- Angular Js 尝试从主按钮回调动态更改模态文本并且不起作用
- Javascript 中的动态回调
- JQuery将字符串识别为函数动态回调
- 谷歌DFP动态广告刷新-是否有回调来确定广告是否已加载
- Javascript承诺动态回调
- 服务回调中的KendoUI网格服务器动态列绑定
- AngularJS - 指令中的动态回调
- 在回调方法中传递动态值
- _googWcmGet回调无法通过具有动态电话号码的GTM工作
- 为动态加载的javascript文件实现“错误”回调
- PassportJS - 动态设置状态以允许在回调时重定向
- ng-repeat之后的Angular JS回调是动态完成的
- 创建带有回调的动态 JSON 数组(内部闭包问题)
- 使用回调在 Chrome 中动态加载样式表
- jQueryUI对话框带有使用回调的动态按钮
- Mootools Request.JSON动态回调
- 如何在动态加载javascript文件后添加回调
- CasperJS不能正确触发动态脚本/链接调用的回调
- 动态脚本hack回调
- 突变观察器没有触发动态变化的回调