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