JavaScript 运算符中的意外输出

-5 javascript node.js

我有一个定义如下的函数:

function makeUser(name, age) {
  return {
    name,
    age
    // ...?????? ????????
  };
}
Run Code Online (Sandbox Code Playgroud)

然后我创建一个用户变量并尝试使用in操作符console.log()

let user = makeUser('John', 30);

console.log('name' in makeUser); // true - why is true??
console.log('age' in makeUser); // false - why is false??
Run Code Online (Sandbox Code Playgroud)

第一个 log() 评估为真,而第二个评估为假。我希望他们都是真的。

为什么是这样?

Nin*_*olz 5

你只得到函数名称

Function对象的只读name属性指示该函数的名称在创建时指定,或者它可以是相当anonymous''(一个空字符串),用于创建匿名功能。

function makeUser(name, age) {
  return {
    name,
    age
    // ...?????? ????????
  };
}

let user = makeUser('John', 30);

console.log('name' in makeUser); //   true
console.log('age' in makeUser); //   false
console.log(makeUser.name);    // makeUser
console.log(makeUser.age);    // undefined
Run Code Online (Sandbox Code Playgroud)