JavaScript函数作为对象

Arjun

我有一个关于JavaScript函数的问题。我读了“函数作为对象”,在其中也可以向函数添加属性和方法,但是当我注销添加了属性的函数时,会注意到一些奇怪的行为。这是我在对象和功能方面采取的一个小例子。

//Object Example
var obj = {
    firstName: 'John',
    lastName: 'Doe',
};
obj.address = '111 Main St. New York, NY';
console.log(obj); // Object {firstName: "John", lastName: "Doe", address: "111 Main St. New York, NY"}

//Function Example
function myFunction () {
    console.log('Hello World');
}
myFunction.greet = 'Hello JavaScript!';
console.log(myFunction); // function myFunction() { console.log('Hello World');}

不出所料,'greet'属性已添加到myFunction中,但是当我注销myFunction时,看不到该属性已打印出来。为什么?在哪里添加了财产?而当我使用点运算符访问属性时,会看到结果注销。

有人可以解释该属性的添加位置和存储位置吗?

妮娜·斯科茨(Nina Scholz)

您可以使用Object.keys函数获得自己的属性

function myFunction () {
    console.log('Hello World');
}
myFunction.greet = 'Hello JavaScript!';

console.log(Object.keys(myFunction));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章