2016-05-12 25 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

相关问题