[英]'This' in phonegap
什么是電話空白中的“這個”? 我正在開發一個應用程序,其中我有本地javascript與應用程序和從服務器拉出的遠程javascript。 我正在使用coffeescript生成所有的javascript。
這兩個文件都包含在應用程序的索引標題中,通過haml生成:
%script{:src=>"javascripts/file1.js"}
%script{:src=>"http://192.168.5.205:3000/assets/file2.js"}
file1.js.coffee:
@myObj1 = property: true
file2.js.coffee:
@myObj2 = property: true
myObj1
全局可用,可以僅作為myObj1
引用,但myObj2
僅可通過document.myObj2
,不能僅作為myObj2
引用。 怎么了?
好吧,如果你這樣說:
@myObj2 = property: true
你必須引用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
這樣你就不必擔心調用上下文了,更重要的是,你的意圖將是明確的,當你試圖修復bug時,你不必在六個月內想到this
或者應該是什么。 說出你的意思:如果你想要它是全局的,把它放在window
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.