2014-02-18 5 views
0

Я хочу знать разницу между функцией и функцией конструктора.Разница между функцией и функцией конструктора

Нормальная функция

function = dosomething(){ //do something }; 

Конструктор Функция

function = Dosomething(){ //do something }; 

Почему мы соблюдаем первую букву капитала в функции конструктора. Есть ли какая-то конкретная причина позади этого

+1

Помимо нескольких встроенных функций, все 'function's могут быть использованы в качестве конструктора , Именование/капитализация - это просто соглашение, используемое для описания тех, которые явно предназначены для использования в качестве конструктора их автором. –

+0

Следуйте за этой ссылкой [Функция конструктора и нормальная функция] (http://stackoverflow.com/questions/8698726/constructor-function-vs-factory-functions) –

+1

* «Почему мы сохраняем первую буквенную столицу в функции конструктора. любая конкретная причина этого »* Вероятно, потому что конструкторы/классы также капитализируются любыми другими языками программирования. –

ответ

2

Нет никакой разницы. Использование заглавной буквы для названия - это просто лучшая практика при создании функции, которая будет действовать как конструктор.

Это действительно то, как вы относитесь к функциям, которые заставляют их вести себя по-другому. Это потому, что функции являются первоклассными в Javascript.

Например:

function MyRegularFunction() { 
    console.log("regular"); 
} 
MyRegularFunction(); 


vs. 


function MyObjectFunction() { 
    console.log("ctor") 
} 

MyObjectFunction.prototype = { 
    constructor: MyObjectFunction, 
    myMethod: function() { 
     console.log("object") 
    } 
} 

var myInstance = new MyObjectFunction(); 
myInstance.myMethod(); 

Надежда, что помогает.

1

Капитализация первой буквы в функции-конструкторе - это просто соглашение об именах, указывающее, что функция является классом. Пример функции конструкторы будет:

function Car(color, make, model){ 
    this.color = color; 
    this.make = make; 
    this.model = model; 
} 

Вы бы затем создать экземпляр функции конструкторы, как так:

var Dodge = new Car("Blue", "Dodge", "Caliber"); 
Смежные вопросы