2010-08-13 35 views
3

的JavaScript編譯此代碼沒有錯誤:這個內部函數的目的是什麼?

function test() { 
    property: true; 
    alert('testing'); 
} 
test(); // Shows message 'testing' 
alert(test.property); // Shows 'undefined' 

財產的內容以任何方式訪問?

如果不是,接受此代碼的目的是什麼?

回答

3

property不是一個屬性在這裏。這是一個標籤 - 您可以使用breakcontinue。你可以重新格式化代碼,你有這樣的:

function test() { 
    property: 
     true; 
     alert('testing'); 
} 

你沒有實際參考的標籤,並且它之後而來的東西(真)只是一個空操作語句,所以它執行時沒有任何反應。該函數僅有意義地包含警報聲明。


您似乎混淆了對象文字與函數定義。你可以這樣創建一個對象與屬性:

var test = { 
    property: true; 
}; 

您可能還與其他幾個模式混淆了。讓我們知道您想要完成更多信息。

+0

我想卡洛斯看着別人的代碼.. – mykhal 2010-08-13 23:52:11

+0

對,我已經用它作爲標籤。我並沒有試圖完成任何具體的事情,我只是注意到這是有效的語法,並認爲這裏可能有一個新的技巧。謝謝。 – 2010-08-13 23:57:40

+0

@mykhal你爲什麼這麼想? – 2010-08-14 00:01:16

0
test = function() { 
    this.property = true; 
    alert('testing'); 
} 
var test = new test(); // Shows message 'testing' 
alert(test.property); // Shows 'true' 

'this'在這種情況下指的是它所在的功能。

this.property = true; 

你必須實例化的功能,以使用它賦值給一個變量:

var test = new test();