Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript coffescript中的嵌套方法_Javascript_Methods_Binding_Coffeescript_Prototype - Fatal编程技术网

Javascript coffescript中的嵌套方法

Javascript coffescript中的嵌套方法,javascript,methods,binding,coffeescript,prototype,Javascript,Methods,Binding,Coffeescript,Prototype,作为示例,我希望将嵌套方法放入coffescript类(或本机js)中 我找到的唯一方法就是 克隆我的嵌套方法对象 将每个嵌套方法绑定到当前对象 我宁愿将其保留在原型对象中,以避免在创建新对象时重新创建所有嵌套方法。 我找到了一个答案,但我没有找到一个好办法来处理它。 我也发现了,这是唯一的方法吗 谢谢您的帮助如果您使用函数而不是对象,您可以跟踪此: class Child constructor: (@id) -> console.log "new child #{@id}"

作为示例,我希望将嵌套方法放入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"
    
    然后调用函数,它将返回一个对象

    child.animations().start()
    

    最好不要使用嵌套方法,跟踪
    这个
    是件痛苦的事。我只是用函数名命名方法的名称空间,比如
    animationStart
    。我理解你的观点,你可能是对的,但我觉得说“在javascript中,跟踪‘this’是一件痛苦的事,所以让我们只更改方法名”:(你是对的,我肯定能做到。我会等几分钟再接受你的答案,看看是否有人有其他答案:)无论如何,谢谢
    child.animations().start()