4
var obj = {};
var fn = function(){};
obj.prop = "some value";
fn.prop = "some value";
assert( obj.prop == fn.prop, "Both are objects, both have the property." );
assert(typeof(obj) === 'object', "Yes its an object");
assert(typeof(fn) === 'object', "why is this not an object");

functions are objects私はその周りの何人かの人々から聞いpassesfails.

4

2 に答える 2

8

関数オブジェクトですが、特定のタイプのオブジェクトです。 typeof(fn)「オブジェクト」のサブタイプである「関数」に評価する必要があります。

于 2012-12-27T00:09:35.933 に答える
8

これは、関数の直接"function"型が.

ただし、次のアサーションを見逃しています。

fn instanceof Object // true

ところで、 や などの型"number""string"厳密にはの子孫ではありませんが、メソッドがあるという意味ではオブジェクトに似ています。JavaScript を面白くするものの 1 つにすぎません :)Object

参照:typeofおよびその値の範囲。

于 2012-12-27T00:10:15.543 に答える