2010-08-13 38 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();