2011-08-30 45 views
2
var newFieldShow = function(hash) { 
    hash.w.fadeIn("2000"); 
}; 

我在一些code中看到了這一點我從網上檢索到的。我從來沒有見過哈希提到..我試圖確定它是否與哈希有關,或者它只是一個事件引用,如我曾經看到的function(event),並且好奇它爲什麼在這裏被使用。確實(散列)意味着什麼作爲JavaScript中的函數參數?

+0

函數的形式參數是非常相似的變量。它只是一個引用傳遞給函數的參數的名稱。與'var hash = arguments [0];'幾乎相同,其中'arguments'是一個集合,代表函數調用時傳遞的所有參數。 – user113716

回答

2

變量的名稱只是提示函數期望作爲輸入的內容,但在Javascript中沒有真正的「類型暗示」來強制執行任何此類策略。

哈希/對象在Javascript中可互換使用,因爲對象成員也可以以與訪問其他語言的哈希表中的條目相似的方式訪問。

hash.w 

相當於

hash["w"] 

後者是在語言如Python或Ruby共同語法(實際上實現該行爲的類被稱爲在紅寶石「散列」)。

所以單詞「散列」並不是指加密散列或散列函數,而是指散列表的功能。

如果對象在JavaScript中通常被稱爲「哈希」,如果它們僅僅是鍵/值對的集合,但不會實現任何功能,例如,

hash = { 
    a: 5, 
    b: "string", 
    c: 7 
} 

反對

object = { 
    member_a: 5, 
    member_b: "string", 
    do_this: function() { ... }, 
    do_that: function() { ... } 
} 
5

在這種情況下,hash只是給出函數參數的名稱,除了「傳遞給名爲newFieldShow的函數的第一個參數的內部名稱(函數內)」之外沒有特別的含義。名稱「散列」不是JavaScript中的保留名稱。


在總體規劃中,術語hash往往是短期的物體或事物與能力「像哈希表」。散列表提供給定密鑰時對一段數據的快速查找。在它的對象類型中,Javascript具有類似的功能類型。

obj["foo"] = "One fine day"; 
console.log(obj["foo"]); // outputs 'One fine day'. 

在你問,我們能夠從已包含代碼的幾行看到具體的情況是:

  1. 「散」是有對象的「 w'財產。
  2. w屬性的值是一個方法爲.fadeIn()的對象。
  3. 由於fadeIn()是一個比較有名的jQuery方法,因此hash.w可能是一個jQuery對象。
5

如果有人送我這個代碼,我要說的是,哈希是使用指定屬性的對象物W,看起來是一個jQuery對象(因爲淡入方法)。

散列可能意味着什麼。因此,需要適當地命名變量(和函數參數)是有意義的。

相關問題