这个对象的名称是什么?

时间:2015-09-04 17:33:40

标签: javascript object

var myObj = { fName: "John", lName: "Doe" };

function myName(f) {
  console.log(f.fName + " " + f.lName);
}
myName({fName: "Mary", lName: "Jane" });

^这个匿名obj的名字是什么?它有名字吗?我们可以添加更多道具吗?

3 个答案:

答案 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.fNamef.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" }