咖啡脚本中的嵌套方法
Nested methods in coffescript
作为下面的示例,我希望将方法嵌套到coffescript类(或本机js)中。
class Child
constructor: (@id) ->
console.log "new child #{@id}"
animations:
start: ->
console.log @, "#{@id} start animation"
custom:
rotate: ->
console.log @, "#{@id} custom rotate animation"
class Parent
constructor: ->
@_childs = []
_.each [1..10], (index) =>
@_childs.push new Child(index)
startAll: ->
_.each @_childs, (child) ->
child.animations.start()
parent = new Parent()
parent.startAll()
我发现的唯一方法是
- 克隆我的嵌套方法对象
- 将每个嵌套方法绑定到我的当前对象
我宁愿将其保留在我的原型对象中,以避免在创建新对象时重新创建所有嵌套方法。我在这里找到了答案,但我没有找到处理它的好方法。我也找到了答案,这是唯一的方法吗?
感谢您的帮助
如果你做函数而不是对象,你可以跟踪this
:
class Child
constructor: (@id) ->
console.log "new child #{@id}"
animations: ->
start: =>
console.log @, "#{@id} start animation"
custom: ->
rotate: =>
console.log @, "#{@id} custom rotate animation"
然后只需调用函数,这将返回一个对象。
child.animations().start()
相关文章:
- 设置嵌套对象属性的更好方法
- 有没有一种简单的方法可以用Lodash映射嵌套数据
- 有没有一种方法可以在所有嵌套循环之后放置一个标签,以便在一步中将它们全部打断
- 在嵌套递归指令中将参数传递给父控制器方法
- 将JS对象数组转换为嵌套形式的最有效方法
- 在HTML中嵌套引号>JavaScript>WebForms或如何在JavaScript方法中调用.NET方
- 在二维数组中搜索比嵌套循环更有效的方法
- Javascript OOP-从函数返回一个值;s在对象内部's方法(嵌套函数)
- 将此(对象)传递到一个对象方法嵌套方法中
- 如何从指令的控制器调用依赖注入服务的嵌套方法
- 访问嵌套Polymer自定义元素中的JavaScript方法
- 附加到 DOMWindow 实例而不是自身实例的嵌套方法调用
- 是否可以在 Vue 中嵌套方法.js以便对相关方法进行分组
- 咖啡脚本中的嵌套方法
- 在 JavaScript 中,如何从更深层次的嵌套方法引用方法的返回值
- 如何窥探Jasmine中的嵌套方法
- 嵌套方法,最佳实践
- TypeScript中的嵌套方法
- jQuery嵌套方法
- JSDoc侧边栏中的嵌套方法