gpt4 book ai didi

javascript - 为什么函数变量可以有对象属性而数字变量不能?

转载 作者:行者123 更新时间:2023-11-30 09:29:27 24 4
gpt4 key购买 nike

我在使用变量的时候发现了一个很神奇的东西。

请看下面的片段。

var abc = function(){};
abc.prop = 1;

console.log(abc);
console.log(abc.prop);

var abc = 3;
abc.prop = 1;

console.log(abc);
console.log(abc.prop);

问题1:为什么使用abc.prop即使不是object也不会输出断言错误?

问题2:如果变量的类型是function,那么它的属性是可以定义的,如果变量的类型是number,那么它的属性是不能定义的。为什么会这样?

最佳答案

为什么第一个片段的 console.log(abc); 只显示函数体,没有 prop 属性?

因为这就是 console.log() 的定义:“如果它是一个函数,就显示它的主体。”

如何获取Function对象的属性?

你可以使用

  • Object.getOwnPropertyNames(abc) 所有属性的名称,
  • Object.keys(abc) 用于可枚举 属性的名称,
  • Object.values(abc) 用于可枚举 属性的值,
  • Object.entries(abc) 可枚举 属性的名称和值。

与任何其他 Object 一样。

关于javascript - 为什么函数变量可以有对象属性而数字变量不能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47233550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com