JavaScript 函数作为对象

标签 javascript function object javascript-objects function-object

我有一个关于 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/

相关文章:

c# - 使用 JavaScript 获取选中的 RadioButtons

Java 私有(private)静态最终字段和匿名内部类与 Kotlin const val 和对象表达式/声明

javascript - IE8中如何获取XML节点的文本值?

javascript - 由于外部 css 包含,css 未被应用

javascript - JavaScript 中的背景图像样式属性

arrays - 如何调用以字符串数组作为参数的函数?

javascript - 如何使用 angularjs 基于复选框选中和取消选中来制作复选框列表?

javascript - Typescript 泛型函数类型文字

c# - 如何从对象中的字典访问值?

php - 在我的自定义类中注入(inject) Silex $app