2016-05-12 23 views
0

參考Bryan Braun的this article關於定義Javascript函數的不同方法,我有一個關於標準的問題。屬性分配與變量賦值:什麼是標準?

假設你有多個對象,並且想要給每個成員name賦值"Programmer",如果你必須使用函數來獲取信息,那麼在Javascript中設置這個更合適或標準的方法是什麼?

變量賦值?例如:

var GetName = function() { 
     return {"name": "Programmer"}; 
} 

var newObj = GetName(); 

or Property Assignment?例如:

var obj1 = { 
    GetName: function() { 
    obj2.name = "Programmer"; 
    }, 

    GetObj: function() { 
    return obj2; 
    } 
} 

obj1.GetName(); 
newObj = obj1.GetObj(); 

或有另一種方式來調用將匹配該功能,更是正確的,或者Javascript的共同標準的功能?我是新來的Javascript所有在一起,並學習所有的繩索。

以前的變量賦值似乎更清晰,更簡單。但財產分配似乎更多「放在一起」,也許是安全的。儘管如此,我認爲Javascript對象和函數的安全性並不高。

那麼這種功能的標準是什麼?

+1

你的第二個例子會產生一個語法錯誤。 –

+0

@MikeC謝謝!我相信你是指沒有逗號,我編輯添加它。如果你正在接受'obj2' var我沒有添加,因爲這或多或少是一個代碼片段。 –

+1

不,我指的是沒有函數關鍵字或參數列表的函數。 'GetObj:{return obj2; }'應該是'GetObj:function(){return obj2; }'或者使用方法語法'GetObj(){return obj2; }'。 –

回答

0

IMO,你應該創建一個簡單的函數/構造函數並用它初始化對象。

function GetName(){ 
    this.name = "Programmer"; 
} 

和使用它像

var obj1 = new GetName(); 
var obj2 = new GetName(); 
var obj3 = new GetName(); 

在JavaScript中,功能在頂部懸掛,用於函數聲明比函數表達式更好。

+0

我很難理解函數聲明和函數表達式之間的使用情況。你什麼時候使用之前的階梯? –

相關問題