【问题标题】:Console error while accessing property from object从对象访问属性时出现控制台错误
【发布时间】:2017-10-03 04:20:03
【问题描述】:

编写一个名为“addFullNameProperty”的函数。

给定一个具有“firstName”属性和“lastName”属性的对象,“addFullNameProperty”返回一个“fullName”属性,其值是一个字符串,名字和姓氏之间用空格分隔。

var person = {
  firstName: 'Jade',
  lastName: 'Smith'
};
addFullNameProperty(person);
console.log(person.fullName); // --> 'Jade Smith'

入门代码:

function addFullNameProperty(obj) {
  // your code here
}

我的代码:

function addFullNameProperty(obj) {
  // your code here
  person.fullName = person.firstName + " " + person.lastName;
  return person.fullName;
}

var person = {
  firstName: 'Jade',
  lastName: 'Smith'
};
addFullNameProperty(person);
console.log(person.fullName); // --> 'Jade Smith'

我按预期得到了正确的结果,但是在提交工作时我得到了以下输出。(可能是因为某些条件可能不满足)

错误消息中的整个文本是“should_create_a_fullName_property_with_the_firstName_and_lastName_separated_by_a_space”

有人可以帮我找出条件吗?

【问题讨论】:

  • person 不是函数参数。您的代码之所以有效,是因为它是一个全局变量。

标签: javascript


【解决方案1】:

person 未在函数中定义。 应该是:

function addFullNameProperty(obj) {
  // your code here
  obj.fullName = obj.firstName + " " + obj.lastName;
  return obj.fullName;
}

【讨论】:

  • 简单的问题,同时有很多相同的答案 :) 但我是第一个来的!
  • 正确 - 您直接引用了“人”对象。我认为测试系统只是试图调用您的 addFullNameProperty(obj) 函数,并没有取回修改后的 obj。
【解决方案2】:

您应该在函数中使用obj 而不是person,然后返回一个字符串值 -

function addFullNameProperty(obj) {
  // your code here
  var fullName = obj.firstName + " " + obj.lastName;
  return fullName;
}

console.log(addFullNameProperty(person));

【讨论】:

    【解决方案3】:

    更新你的函数以使用函数参数如下 -

    function addFullNameProperty(obj) {
      // your code here
      obj.fullName = obj.firstName + " " + obj.lastName;
      return obj.fullName;
    }
    

    【讨论】:

    • 谢谢穆克什。有人在上一篇文章中发布了相同的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 2018-07-18
    • 2021-07-15
    相关资源
    最近更新 更多