范围和嵌套功能

时间:2018-09-10 17:09:29

标签: javascript function scope

大家好,我再次感到困惑。因此,我要面对的挑战是:

创建一个名为fullNameAndAge的函数,该函数接受名为firstNamelastNameage的3个参数。 在fullNameAndAge中,通过将fullNamefirstName变量作为参数传入来调用lastName函数,并将该函数的结果存储在名为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);

我觉得自己很不错,但还没有到位。我不确定我在哪里搞砸了。

2 个答案:

答案 0 :(得分:0)

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

  

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

您可以在这里https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return

了解更多信息

答案 1 :(得分:0)

您可以创建一个构造函数,并将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)