函数与对象的关系

var fn = function () { };
console.log(fn instanceof Object); // true

首先,从上面可以看出,函数是引用类型,是对象,
再比如:

function Fn() {
this.name = 'Pray';
this.year = 1988;
}
var fn1 = new Fn();

从上面可以看出,对象可以通过new一个函数来创建

但是,我要说明, 对象都是由函数创建的, 有些人可能会反驳, 比如

var obj = { a: 10, b: 20 };
var arr = [5, 'x', true];

这些json对象,数组难道也是由函数创建的???
我的回答是,yes.
看下面的代码:

//var obj = { a: 10, b: 20 };
//var arr = [5, 'x', true];

var obj = new Object();
obj.a = 10;
obj.b = 20;

var arr = new Array();
arr[0] = 5;
arr[1] = 'x';
arr[2] = true;

怎么样,是不是看的很清楚

对象是函数创建的, 而函数又是一种对象,那么函数与对象到底有什么关系呢???

这就涉及到js中比较高级的东西 – prototype原形
(完)

分享到