JavaScript中查看手动添加到函数的属性有哪些方法?
聊聊JavaScript中函数作为一等对象的属性操作
嘿,咱们来拆解一下JavaScript里函数作为一等对象这个有趣的特性——简单来说,函数在JS里和普通对象没啥两样,你完全可以像给对象加属性那样给函数加属性。
先看这段示例代码,咱们一步步分析:
function a() { a.firstProp = "I'm 1st - property"; } a.seccondProp = "I'm 2st - property"; function b() { a(); } b(); // 初始化`function a`的第一个属性(firstProp); console.log( Object.getOwnPropertyNames(b) ); console.log( Object.getOwnPropertyNames(a) );
代码逐行解析:
- 定义函数
a时,它的内部逻辑是给自己添加firstProp属性——注意这个属性只有在a被执行的时候才会被创建; - 直接在函数对象
a上添加了seccondProp属性——这种方式不需要执行函数,直接操作函数对象本身就能完成; - 函数
b的作用很简单,就是调用a; - 执行
b()后,a被调用,它的firstProp属性也就被初始化了; - 最后用
Object.getOwnPropertyNames()来打印两个函数的自有属性:- 对于
b,因为我们没给它加过自定义属性,所以输出的是函数默认自带的属性集合,比如length、name、prototype这些; - 对于
a,输出会包含默认属性,再加上我们手动添加的firstProp和seccondProp。
- 对于
另外你提到原问题里有关于C语言的相关内容,但表述没完成,如果后续补充完整的细节,咱们可以再针对性讨论哦~
内容的提问来源于stack exchange,提问作者Yellowfun
相关产品推荐
相关产品推荐

