var myObj = { fName: "John", lName: "Doe" };
function myName(f) {
console.log(f.fName + " " + f.lName);
}
myName({fName: "Mary", lName: "Jane" });
^这个匿名obj的名字是什么?它有名字吗?我们可以添加更多道具吗?
答案 0 :(得分:3)
如上所述,对象没有名称。
另外需要注意的是,您的代码不能按原样运行。您将收到以下错误:
Unable to get property 'lName' of undefined or null reference
以下是您想要做的事情:
function myName(f) {
console.log(f.fName + " " + f.lName);
}
myName({fName: "Mary", lName: "Jane" });
在原始示例中,您将对象(单个,第一个参数)传递给myName()
函数。在函数的范围内,您有f
,这是您的对象。 f.fName
和f.lName
已定义。但l
未通过(似乎不是您的意图)。
所做的更改会将函数签名从function myName(f, l)
更改为function myName(f)
,然后在函数正文中将l.lName
更改为f.lName
以正确引用所需对象
我们可以添加更多道具吗?
你到底是什么意思?哪里?假设你有一定的意图,是的,你可以:
function myName(f) {
console.log(f.fName + " " + f.lName);
// add the formatted name in the form of "LastName, FirstName"
//
f.formattedName = f.lName + ", " + f.fName;
console.log(f.formattedName);
}
myName({fName: "Mary", lName: "Jane" });
编辑:SerCrAsH(评论)提出了一个好点。您总是可以从函数中返回对象:
function myName(f) {
console.log(f.fName + " " + f.lName);
f.formattedName = f.lName + ", " + f.fName;
console.log(f.formattedName);
return f;
}
var name = myName({fName: "Mary", lName: "Jane" });
console.log(name.formattedName);
答案 1 :(得分:1)
它没有名字。对象永远不会有名字。有时存在包含对象引用的变量或属性,变量和属性具有名称。
您可以通过编辑创建它的源代码或通过获取对它的引用(例如f
中的myName
变量)并使用它来编辑它来向其添加更多属性。
答案 2 :(得分:-5)
您可以根据需要命名。在bests情况下,您可以根据对象必须执行的操作来命名。
例如,如果您想要一个引用Customer的对象,您可以这样做:
var Customer = { id: 1, name: "Quentin", age: 999 }
如果您需要Product对象
,则相同var Product = { id: 999, description: "aois jdpoaisjd paosijd as" }