Объект и функция в JavaScript - PullRequest
0 голосов
/ 15 февраля 2012

Я ищу более короткий способ создания объекта JavaScript, который можно использовать в качестве функции.Например, я могу сделать следующее:

var A=function(){window.alert('Hello World');}
A.hello='World';

Обратите внимание, что я могу позвонить A() или получить доступ A.hello.

Есть ли способ сделать это с помощью фигурных скобок для созданияобъект?

var A={
    ?:function(){window.alert('Hello World');},
    hello:'World',
};

Ответы [ 3 ]

3 голосов
/ 15 февраля 2012

Как вы знаете, функция - это Объект. Ничто не мешает вам писать свойства в самой функции.

function A(){
    this.width = 200;
}

A.height = 120;

Если вы хотите получить доступ к свойствам, написанным в функции, из самой функции, вы должны использовать атрибут 'callee' аргументов ':

function A(){
    this.width = 200;
    alert(this.width +'x'+ arguments.callee.height);
}

A.height = 120;

A(); // should alert "200x120"
1 голос
/ 15 февраля 2012

"Есть ли способ сделать это, используя фигурные скобки для создания объекта?"

Нет, официального синтаксиса для создания вызываемых объектов нет, кроме создания Function объекта.

0 голосов
/ 15 февраля 2012

по первому пути, A - это функция, вы можете использовать ее следующим образом: A ();

по второму пути, A - это объект

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...