我对 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"
为什么它按预期工作?
答案 0 :(得分:6)
因为createUsername
是方法(函数)所以它返回一个函数,而createUsername(account1.owner)
执行函数(因为括号),所以console.log
显示函数的返回值.
你也可以这样做
var result = createUsername(account1.owner);
console.log(result);
将执行函数,将其分配给 result
并在控制台中输出 result
值。