让我们说我们有一个功能。
function Rabbit(){
console.log("shiv");
}
现在没有创建此函数的对象,我可以分配此对象的属性
Rabbit.bark = function(line) {
console.log("name is", line);
};
这是什么意思。这样做可以添加变量bark来实现功能。或者这会向Rabbit
对象添加属性,即使我没有使用new
运算符创建对象。
答案 0 :(得分:2)
这是什么意思。这样做可以添加变量bark来实现功能。或者做 这为Rabbit对象添加了一个属性
这样做可以添加变量bark来实现 - 否
或者这样做为Rabbit对象添加了一个属性 - 是
bark是Function
类型的对象的属性即使我没有使用new运算符
创建对象
Rabit已经是一个对象(Function类型)。您没有创建此对象的实例,只是您要向其添加属性。
答案 1 :(得分:2)
函数只是一个对象,它被称为Function对象。
就像任何其他类型的对象一样,它有自己的构造函数(new Function(...)
),方法(apply
,bind
,call
...)和属性(arguments
,caller
,name
...)。 See the document
您可能熟悉创建这样的函数:
function Rabbit() {
console.log('shiv');
}
然后你应该知道你也可以创建这样的函数:
var Rabbit = new Function('console.log("shiv")');
现在,你可能会猜到它。如果您向Function对象添加新属性,只要您不覆盖现有属性,该函数仍然可以正常工作。
这样做为函数添加变量bark
this
Rabbit.bind(object)
对象
这样做为Rabbit对象添加了一个属性