2016-05-12 23 views
0

根據Bryan Braun的this article概述了在Javascript中編寫函數的不同可能方式,Property Assignment是這樣做的一種方法。他的例子是與此類似:使用屬性賦值的多個函數可能嗎?

var obj1 = { 
    SetName: function() { 
    obj1.name = "Programmer_Frank"; 
    } 
}; 

,這可以被稱爲例如:

obj1.SetName(); 

這正常工作。它給了我一個成員"name"和值"Programmer_Frank"的對象。

然而,當我嘗試:

var obj1 = { 
    SetName: function() { 
    obj1.name = "Programmer_Frank"; 
    } 

    SetAddress: function(theAddress) { 
    obj1.address = theAddress; 
    } 
}; 

,你會引用這些功能,例如:

obj1.SetName(); 
obj1.SetAddress("P Sherman 42 Wallaby Way"); 

這給了我一個Uncaught SyntaxError: Unexpected identifier在開發者在Chrome調試器就行了SetAddress: function(theAddress) {。 這是爲什麼? 2個功能的屬性賦值是不可能的?這裏是我的完整代碼,它只是一個測試應用程序,所以它並不比我迄今爲止發佈的內容多得多,但是也許它將發佈完整的代碼仍然有用。

<html> 
<head> 
<script> 

var obj1 = { 
    SetName: function() { 
    obj1.name = "Programmer_Frank"; 
    } 

    SetAddress: function(theAddress) { 
    obj1.address = theAddress; 
    } 
}; 

</script> 
</head> 

<body> 
<script> 

obj1.SetName(); 
obj1.SetAddress("P Sherman 42 Wallaby Way"); 

</script> 
</body> 
</html> 
+0

錯誤消息「未捕獲的SyntaxError:意外的標識」後缺少一個逗號約爲知識性爲一體纔有希望。各種棉絨都會產生類似的信息。你可以盯着'setAddress'並試圖推論爲什麼你會得到一個意想不到的標識符,並且最終可能會發現它是缺少的逗號。你也可以使用分而治之的方法:首先刪除'SetAddress'的主體,然後將其更改爲'SetAddress:42',然後將其更改爲'x:42',並且最終可能會在你已經離開出逗號。 – 2016-05-12 18:58:19

回答

0

你是第一個方法定義

var obj1 = { 
    SetName: function() { 
    obj1.name = "Programmer_Frank"; 
    }, //this comma 
    SetAddress: function(theAddress) { 
    obj1.address = theAddress; 
    } 
}; 
+0

完美運作。謝謝!永遠不會猜到。 –

+0

由於JS對象文字中的鍵/值對之間的逗號是該語言的基礎之一,所以你永遠不會猜到這是一個謎。 – 2016-05-12 18:03:20

相關問題