我有一个关于 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 时,我没有看到该属性打印出来。为什么?属性添加到哪里了?然而,当我使用点运算符访问该属性时,我看到结果已注销。
有人可以解释一下该属性已添加到何处以及存储在何处吗?
最佳答案
您可以通过 Object.keys
获得自己的属性的功能。
function myFunction () {
console.log('Hello World');
}
myFunction.greet = 'Hello JavaScript!';
console.log(Object.keys(myFunction));
关于JavaScript 函数作为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41915014/