【问题标题】:Scope and nesting functions范围和嵌套函数
【发布时间】:2018-09-10 17:09:28
【问题描述】:

大家好再次我有点困惑。因此,我的目标是:

创建一个名为fullNameAndAge 的函数,它接受三个参数,分别称为firstNamelastNameage。 在fullNameAndAge 中,通过将firstNamelastName 变量作为参数传入其中来调用fullName 函数,并将该函数的结果存储在名为result 的变量中。 现在以逗号和空格分隔的年龄返回全名。 (例如 fullNameAndAge(“Jane”, “Doe”, 23) 将返回 'Jane Doe, 23'

答案键状态fullNameAndAge("Jonah", "Hex", 46) 应该返回"Jonah Hex, 46"

以下是我的尝试之一:

    function fullName(firstName, lastName) {
        return firstName + ' ' + lastName;
    }

     // your code under here
    function fullNameAndAge(firstName, lastName, age) {
        var result = null;

        function fullName(firstName, lastName) {
            result = firstName + ' ' + lastName;
            return result;
        }

        fullName(firstName, lastName);
        return result + ' , ' + age;
    }

    return fullNameAndAge('Jonah', 'Hex', 46);

我觉得我已经达到了目标,但还没有达到。我不确定我在哪里搞砸了。

【问题讨论】:

  • 它已经为我返回 'Jane Doe,23',你有什么问题?
  • 我收到“语法错误:非法返回语句”
  • 你的最后一行是一个不在函数内部的返回语句

标签: javascript function scope


【解决方案1】:

您的最后一行是不在函数内部的 return 语句

return 语句结束函数执行并指定要返回给函数调用者的值

您可以在这里阅读更多内容https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return

【讨论】:

  • 感谢克里斯,我想通了。正确的代码是: function fullNameAndAge ( firstName, lastName, age) { var result = firstName + ' ' + lastName;返回(结果+','+年龄);
【解决方案2】:

你可以创建一个构造函数和fullName它的原型

function FullNameAndAge(firstName, lastName, age) {
  this.firstName = firstName;
  this.lastName = lastName;
  this.age = age;
}


FullNameAndAge.prototype.fullName = function() {
  return this.firstName + ' ' + this.lastName + ',' + this.age;

}

let m = new FullNameAndAge('Jonah', 'Hex', 46).fullName();
console.log(m)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多