2013-02-01 37 views
0

我有以下簡單的CoffeeScript類:寫CoffeeScript的類

class Country 
    constructor: (@val) -> 
     console.log @val 
    foreign: -> 
     @val isnt "United States" 
    domestic: -> 
     not foreign() 

我有這個簡單的類,以確定一個選擇降一些邏輯下來。

這是我如何打電話吧:

$country = new Country($val) if $('select[id*="country"]').val() > 0 
console.log $country.foreign? if $country? 

$val是在on('change')事件被設置。即使我選擇美國以外的國家,$country.foreign?也總是評估爲真。不知道我在這裏做錯了什麼。該@val被設置爲我傳遞的價值,但國外不能正常發揮

+0

這對我來說很好:http://coffeescript.org/#try:class%20Country%0A%20%20%20%20constructor%3A%20(%40val)%20-%3E%0A% 20%20%20%20%20%20%20%20console.log%20%40val%0A%20%20%20%20foreign%3A%20-%3E%0A%20%20%20%20%20 %20%20%20%40val%20isnt%20%22United%20States%22%0A%20%20%20%20domestic%3A%20-%3E%0A%20%20%20%20%20%20% 20%20not%20foreign()%0A%0Ac1%3D%20new%20Country(%22United%20States%22)%0Ac2%3D%20new%20Country(%22Not%20United%20States%22)%0A%0Aalert%20% 22%應該%20%20%錯誤%3A%20%23%7Bc1.foreign()%7D%22%0Aalert%20%22應該%20be%20%%3A%20%23%7Bc2.foreign()%7D%22編輯 - 哦我看... – asawyer

回答

2

工作應該是

console.log $country.foreign()? if $country? 

foreign是一個函數調用。

也是翻譯成這樣:

if (typeof $country !== "undefined" && $country !== null) { 
    console.log($country.foreign() != null); 
} 

所以,你得到一個日誌的回報是否爲空,你可能要刪除的?

console.log $country.foreign() if $country? 
+0

我認爲這是它,但它仍然不工作:( – dennismonsewicz

+1

@ dennismonsewicz嘗試刪除console.log上的'?'調用 – asawyer

+0

就是這樣!我一直忘記CoffeeScript中的問號是存在...... – dennismonsewicz

1

它應該是$國家。國外()?