Javascript 函数调用后立即返回函数本身

Javascript 函数调用后立即返回函数本身,javascript,Javascript,我对JS还相当陌生,在练习时偶然发现了以下内容,我想知道为什么会发生这种情况。 我真的觉得我明白为什么了;然而,我觉得这不是很直截了当 我有这个对象,我想用所有者的名字生成一个用户名 const account1 = { owner: 'Pat Racco', movements: [200, 450, -400, 3000, -650, -130, 70, 1300], interestRate: 1.2, // % pin: 1111, }; 这是我的尝试: const c

我对JS还相当陌生,在练习时偶然发现了以下内容,我想知道为什么会发生这种情况。 我真的觉得我明白为什么了;然而,我觉得这不是很直截了当

我有这个对象,我想用所有者的名字生成一个用户名

const account1 = {
  owner: 'Pat Racco',
  movements: [200, 450, -400, 3000, -650, -130, 70, 1300],
  interestRate: 1.2, // %
  pin: 1111,
};
这是我的尝试:

const createUsername = function (owner) {
  const username = owner
    .toLowerCase()
    .split(' ')
    .map(v => v[0])
    .join('');
  return username;
};
现在,为什么我要这样做:

createUsername(account1.owner);
console.log(createUsername);
    console.log(createUsername(account1.owner));
// "pr"
结果是函数本身;但如果我这样做:

createUsername(account1.owner);
console.log(createUsername);
    console.log(createUsername(account1.owner));
// "pr"
为什么它会按预期工作?

因为createUsername是methodfunction,所以它会返回一个函数,而createUsernameaccount1.owner会因为括号而执行函数,所以console.log会显示函数的返回值

你也可以这样做

var result=createUsernameaccount1.owner; console.logresult;
它将执行函数,将其分配给结果并在控制台中输出结果值。

Mozilla开发者网络Web文档中有一些不错的初学者指南。阅读本手册及其先决条件