Какова цель этого внутри функции? - PullRequest
3 голосов
/ 14 августа 2010

Javascript компилирует этот код без ошибка:

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

Доступно ли каким-либо образом содержимое свойства ?

Если нет,Какова цель принятия этого кода?

Ответы [ 2 ]

3 голосов
/ 14 августа 2010

property не является собственностью здесь. Это этикетка, которую вы можете использовать с break или continue. Вы можете переформатировать код, который у вас есть, как это:

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

Вы на самом деле не ссылаетесь на метку, и то, что следует за ней (true), является просто оператором no-op, поэтому ничего не происходит, когда он выполняется. Функция только содержательно содержит оператор оповещения.


Вы, похоже, путаете литерал объекта с определением функции. Вы можете создать объект со следующими свойствами:

var test = {
    property: true;
};

Возможно, вы также путаете это с парой других шаблонов. Дайте нам знать, что вы пытаетесь сделать для получения дополнительной информации.

0 голосов
/ 14 августа 2010
 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();
...