有什么基本的例子来帮助我理解函数是对象吗?

use*_*637 2 javascript

我正在学习javascript,我一直听到的一件事是"功能就是对象".你能为我提供一些例子来更好地理解这个概念吗?

Ry-*_*Ry- 5

当然.这是一些示例代码:

function Hello() {
    alert(Hello.world);
}

Hello.sayHello = Hello;
Hello.world = 'Hello, world!';

Hello.sayHello.sayHello.sayHello.sayHello.sayHello();
Run Code Online (Sandbox Code Playgroud)

这里证明它也有效.

请注意如何为函数指定属性,并将其分配给自身并以递归方式引用它.这是一个对象,就像JavaScript中的大多数其他东西一样,你可以用它做任何事情.如果您之前看过原型继承:

Function.prototype.alert = function() {
    alert(this.apply(null, arguments));
};

function add(a, b) {
    return a + b;
}

add.alert(1, 2); // Alerts 3
Run Code Online (Sandbox Code Playgroud)

这里有很多东西 - 一个函数文字,它本质上是一个没有名字的函数; 原型继承; 功能方法; 动态论证; 功能如this.

  • @PeteMancini:嗯......这是为什么?我在这里没有看到任何问题. (2认同)