JavaScript 将属性添加到函数

javascript adding property to function

本文关键字:函数 添加 属性 JavaScript      更新时间:2023-09-26

假设我们有一个函数。

function Rabbit(){
  console.log("shiv");
}

现在无需创建此函数的对象,我可以分配此对象的属性

Rabbit.bark = function(line) {
 console.log("name is", line);
};

这是什么意思。 这样做会添加一个可变树皮来发挥作用。 或者这是否向Rabbit对象添加属性,即使我没有使用 new 运算符创建对象。

JavaScript 中的函数只是一个对象,它被称为函数对象。

就像任何其他类型的对象一样,它有自己的构造函数(new Function(...)),方法(applybindcall...)和属性(argumentscallername...)。请参阅文档。

您可能熟悉创建如下函数:

function Rabbit() {
    console.log('shiv');
}

然后你应该知道你也可以创建一个这样的函数:

var Rabbit = new Function('console.log("shiv")');

现在,您可能会猜到它。如果向 Function 对象添加新属性,只要不覆盖现有属性,该函数仍然可以正常工作。

这样做将变量树皮添加到函数

  • 不,函数有自己的闭包,向函数添加变量的唯一方法是使用 Rabbit.bind(object) 将其绑定到对象this

这样做会向 Rabbit 对象添加一个属性

  • 好吧,既然"兔子对象"只是一个对象,是的。

这是什么意思。这样做会添加一个变量树皮来发挥作用。或者做 这向 Rabbit 对象添加了一个属性

这样做添加一个变量树皮到函数 -

或者这样做会向 Rabbit 对象添加一个属性 -

树皮是函数类型的对象的属性

即使我没有使用 new 运算符创建对象

Rabit 已经是一个对象(函数类型)。您不是在创建此对象的实例,只是要向其添加属性。