2015-02-03 5 views
0

Пример:Javascript класс против имен переменных

function car(){ 
    this.name = "toyota"; 
} 



var car = new car(); 

console.log(car); 
console.log(car instanceof car); // error 

Я предполагаю его, потому что имя переменной совпадает с именем «класса»

нормально, я могу изменить, но «автомобиль» кажется естественным мне.

Вопрос: если в javascript есть какие-то стандарты в том, как назвать классы и экземпляры класса, чтобы они не столкнулись, но все-таки понятны?

Эта проблема не существует в php bc, переменные отделяются от классов, поэтому они могут иметь одно и то же имя: |

+0

Соглашение состоит в том, чтобы капитализировать имена конструкторов. – Bergi

ответ

0

Когда вы делаете:

function car(){ 
    this.name = "toyota"; 
} 

var car = new car(); 

Вы заменили car функцию с объектом. Если вы затем попытаетесь сделать var newCar = new car(), вы получите TypeError, так как car больше не является функцией, поэтому вы не можете ее назвать.

Из моего опыта, наиболее часто используемый стандарт похож на то, что вы хотите видеть в Java (см Mozilla Developer Network Style Guide для более подробной информации):

  • Используйте нижний верблюд случае объявления переменных и методов (например var name = "Michael Jordan";)
  • Использование верхнего регистра верблюд для определения класса (например function Car() { this.name = "toyota"; })

вы также можете использовать Python или стиль C именование, если вы действительно хотите, так долго, как вы последовательны. Просто имейте в виду, что большинство библиотек там, похоже, используют соглашения об именах в стиле Java.

Вы можете найти следующий стиль JavaScript руководства полезно:

  1. https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style
  2. http://www.w3schools.com/js/js_conventions.asp

Так что в вашем случае, вы хотите сделать что-то вроде этого:

function Car() { 
    this.name = "toyota"; 
} 

var car1 = new Car(); 
var car2 = new Car(); 
0

Обычно я использую имя классов, как для llows:

function Car(){ 
    this.name='seat'; 
} 

var car =new Car(); 

с другой стороны, методы определяются как имена compossed с глаголами + имя, где глагол находится в нижнем регистре, а имя является капитализировать. Например:

this.riseSpeed=function(){ 

} 

или

this.restSpeed=function(){ 

} 

и я обычно называют переменные в нижнем регистре.Если переменная хранит DOM элемент, то я называю это начинается с элемента «$», как я покажу ниже:

$element=document.getElementById('id'); 
0

Ну, большинство ОО языков (не уверен, если это формальное правило), Существует соглашение говоря, что имена классов должны иметь первую букву, а имена экземпляров должны иметь обычную первую букву.

В вашем случае используется автомобиль для класса и автомобиль для экземпляра, например, @Bhojendra Nepal.

Другой пример:

function Person() { 
    this.name = 'Daniel'; 
} 

var person = new Person(); 
Смежные вопросы