javascript中的可调用对象是什么?
我知道可调用对象类似于创建为对象的函数,可以在函数调用表达式中使用。javascript中的可调用对象是什么?,javascript,Javascript,我知道可调用对象类似于创建为对象的函数,可以在函数调用表达式中使用。 但是如何区分可调用对象和普通函数呢?我相信其他人可以给出更全面的答案,但基本上,可调用对象是可以调用的对象,这可以通过调用函数来证明,例如: if (func.call) { func.call(); } JSFiddle: MDN:我相信其他人可以给出更全面的答案,但基本上,可调用对象是您可以调用的对象,这可以通过调用函数来证明,例如: if (func.call) { func.call();
但是如何区分可调用对象和普通函数呢?我相信其他人可以给出更全面的答案,但基本上,可调用对象是可以调用的对象,这可以通过调用
函数来证明,例如:
if (func.call) {
func.call();
}
JSFiddle:
MDN:我相信其他人可以给出更全面的答案,但基本上,可调用对象是您可以调用的对象,这可以通过调用
函数来证明,例如:
if (func.call) {
func.call();
}
JSFiddle:
MDN:在JS中,函数是“类似对象”的,因为它们具有以下属性:
function f() { return 2; }
f.foo = 3;
console.log(typeof f); // "function"
console.log(f.foo); // 3
除此之外,真的没有“可调用对象”这样的东西不是简单的函数(除了某些IE?我不知道),甚至不可能做一些奇怪的事情,比如创建一个以函数为原型的对象:
var obj = Object.create(f);
console.log(obj()); // TypeError: obj is not a function
在JS中,函数是“类似对象”的,因为它们具有以下属性:
function f() { return 2; }
f.foo = 3;
console.log(typeof f); // "function"
console.log(f.foo); // 3
除此之外,真的没有“可调用对象”这样的东西不是简单的函数(除了某些IE?我不知道),甚至不可能做一些奇怪的事情,比如创建一个以函数为原型的对象:
var obj = Object.create(f);
console.log(obj()); // TypeError: obj is not a function
你能给出一个“可调用对象”的例子吗?也许一个例子可以帮助我们清楚地理解这个问题。规范谈到了一个IsCallable()
测试,它为实现[[Call]]
内部方法的对象返回true。它是讨论内部结构的有用术语,但对于任何实际用途的JavaScript程序员来说,它都不是很有趣。你能举一个“可调用对象”的例子吗?也许一个例子可以帮助我们清楚地理解这个问题,规范谈到了一个IsCallable()
测试,对于实现[[Call]]
内部方法的对象,返回true。它是讨论内部结构的有用术语,但对于任何实际用途的JavaScript程序员来说,它都不是很有趣。