我在过去的采访中遇到了上述问题。我说不。我对此有疑问。我不知道我们怎么能将对象用作函数?
答案 0 :(得分:0)
是的,我们可以,因为每个function
在JS中也是object
。但反之亦然
我有一个function
并且还有一个property
。所以我可以调用它并使用它的属性
function hello(){
console.log('Hello');
}
hello.someProp = 'Some Prop';
hello();
console.log(hello.someProp);
答案 1 :(得分:0)
我想详细说明一下。
JavaScript实际上是面向对象的原因是因为无论何时声明一个函数,它都只是JavaScript的内置对象的新实例,名为函数。
例如当您声明 var a = {}时, 对象构造函数会创建一个新对象。同样,每当你声明一些函数如函数时,SomFucn(){}函数构造函数会创建新函数。
所以是的,我们可以将函数用作对象,但反之亦然。
结帐以下代码。工作小提琴在这里https://jsfiddle.net/95ejaydL/(检查控制台);
console.log(typeof(Object));
console.log(typeof(Function));
Function.prototype.sayHello = "Hello function property";
Object.prototype.sayHello = "Hello Object";
var a = {};
console.log(a.sayHello);
function Hello(){
console.log("Hello from method");
}
Hello();
console.log(Hello.sayHello);
a();
请告诉我这是否有用。
感谢。