Lee*_*lla 3 javascript haml this coffeescript cordova
什么是电话空白中的"这个"?我正在开发一个应用程序,其中我有本地javascript与应用程序和从服务器拉出的远程javascript.我正在使用coffeescript生成所有的javascript.
这两个文件都包含在应用程序的索引标题中,通过haml生成:
%script{:src=>"javascripts/file1.js"}
%script{:src=>"http://192.168.5.205:3000/assets/file2.js"}
Run Code Online (Sandbox Code Playgroud)
file1.js.coffee:
@myObj1 = property: true
Run Code Online (Sandbox Code Playgroud)
file2.js.coffee:
@myObj2 = property: true
Run Code Online (Sandbox Code Playgroud)
myObj1
可在全球范围内使用,可以仅作为参考myObj1
,但myObj2
仅可通过document.myObj2
简单参考,不能简单引用myObj2
.怎么了?
好吧,如果你这样说:
@myObj2 = property: true
Run Code Online (Sandbox Code Playgroud)
你必须参考myObj2
的document.myObj2
其他地方一样,那么this
一定是document
当file2.js.coffee
被执行.如果您的代码通过$(document).ready()
或类似的方式执行(例如:http://jsfiddle.net/ambiguous/6DFK9/),就会发生这种情况.
如果你想要一些全局的东西,那么你真的应该明确它并使用window
:
# in file1.js.coffee:
window.myObj1 = property: true
# in file2.js.coffee:
window.myObj2 = property: true
Run Code Online (Sandbox Code Playgroud)
这样你就不必担心调用上下文了,更重要的是,你的意图将是明确的this
,当你试图修复bug时,你不必为六个月内应该是什么或者应该是什么而烦恼.说出你的意思:如果你想要它全球化,请把它放进去window
.
归档时间: |
|
查看次数: |
989 次 |
最近记录: |