2014-02-18 148 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"); 
從幾個本地函數
相關問題