【发布时间】:2015-02-15 17:08:52
【问题描述】:
请解释一下为什么函数是javascript中的对象? 对象是具有属性的结构。属性的值可能是一个函数,我们称这个属性为方法。 但是我们不能执行一个对象。 我们不能这样做:
var cat = {name: 'Murzik', age: 17};
cat();
但是我们可以执行函数
var func = function() {
alert('Hello world!');
};
func();
那么,如果函数是对象,为什么我们可以这样做呢? 请帮我理解! 谢谢!
【问题讨论】:
-
Javascript 的设计者只是简单地决定一个函数将从一个对象派生,因此它本身可以具有属性。您还在寻找什么其他类型的答案?数组也是从对象派生的。函数是派生对象,因此具有常规对象的所有功能以及派生实现中添加的一些附加功能。这就是继承的工作原理。
-
如果您真的对 javascript 很认真,并且了解它与其他语言的区别,我会选择 Douglas Crockford 的 JavaScript: The Good Parts 的副本。如果您认为函数在 javascript 中具有时髦的味道,那么您会喜欢truthy/falsey、闭包和 javascript 数学之类的东西。 0.1 + 0.2 == 0.3 是假的。
-
函数是对象,但对象不是函数。这是什么意思?
is a不等价。 -
@Lawrence - 浮点数学等价怪癖并不是 JavaScript 独有的。
-
不是独一无二的,但在地雷中:)
标签: javascript function object