Могу ли я иметь объект с тем же именем, что и класс в JavaScript? - PullRequest
0 голосов
/ 24 июня 2009

Могу ли я иметь объект с тем же именем, что и класс в javascript?

Ответы [ 3 ]

4 голосов
/ 24 июня 2009

В javascript нет классов как таковых, есть только методы для создания объектов.

Чтобы прямо ответить на ваш вопрос, да и нет. Вы можете создать функцию, которая создает ваш объект, но как только у вас есть переменная с тем же именем, функция уничтожается.

Нет разницы между

function bob() {
    //code goes here
    this.name = "bob";
}

и

var bob = function() {
    //code goes here
    this.name = "bob";
}

Что произойдет, если вы объявите переменную с именем bob, например:

var bob = new bob();

В этом случае будет вызвана функция bob, созданный объект и функция bob, перекрытая новой переменной bob.


Если вы хотите создать синглтон, то вы также можете использовать замыкание следующим образом:

var bob = new (function() {
    //code goes here
    this.name = "bob";
})();
0 голосов
/ 26 сентября 2012

Как насчет jQuery: $('string'), насколько я могу сказать, функции, и $.ajax, класса с методом с именем ajax.

Функция с именем $ и класс с именем $. Я знаю, что я не прав, но вот как это выглядит.

0 голосов
/ 24 июня 2009

Вы можете использовать одно и то же имя для класса и переменной, да. Но начните класс с заглавной буквы и держите имена переменных строчными. (При этом класс Bob и переменная bob.)

Javascript чувствителен к регистру, поэтому он знает разницу. Для вас оба читали бы одно и то же.

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