2013-03-02 72 views
3

我有一個艱難的時間,試圖找到合適的術語,如功能陣列功能:正確的術語對自己的行

var array = [1, 2, 3]; 

array.pop(); 

return array; // returns [1, 2]; 

和:

var array = [1, 2, 3].pop(); 

return array; // returns 3 

我個人只是調用第一個例子「間接」,因爲你間接觸發數組的功能並修改它。

我打電話的第二個例子,你猜對了,「直接」,因爲你直接將函數鏈接到數組。

聽起來有點傻,我知道。但是,我對這些特定代碼段的實際術語非常感興趣,如果有的話。

+1

是關於在指向對象的變量上調用方法的術語,而不是直接在對象本身上調用方法的問題?你的問題有點令人困惑,因爲你的兩個例子做的事情略有不同,但我不認爲這就是問題所在。一個小點:在第二個例子中'array'實際返回'3'。 – ultranaut 2013-03-02 04:22:27

+2

雖然這些示例並不等同,但第二個變量「數組」被錯誤地命名;它是'pop()'返回的最後一個元素。因此,第二個例子的數組沒有對它的名稱引用;它是「匿名的」(以一種說法)。 – 2013-03-02 04:22:56

回答

1

在第二種情況下,你正在做的:

[1,2,3].pop(); 

在你做第一種情況:

var array = [1, 2, 3]; 
array.pop(); 

這被簡稱爲變量賦值。

什麼是在您的問題造成一些混淆的是,在第二個例子中,您將值3分配給名爲「數組」的變量,這應該真的被稱爲別的東西。