上一节说到,函数是对象的一种,因为从instanceof 就可以知道,但是不可以像数组一样,说,函数是对象的子集
函数和对象可不是一种包含和被包含的关系。
function Fn() {
this.name = '王福朋';
this.year = 1988;
}
var fn1 = new Fn();
console.log(fn1)
上述例子可以说明:Fn()这个函数创建了一个对象{ name:"王福明",year:1988}
对象可以通过函数来创建
但是平时的对象不都是直接用变量创建的吗???----这就是js语法糖了
平时的我们创建普通对象和数组对象时候:
var obj = { a: 1, b: 5 };
var arr = [5, 'taxi', true];
实际上:
var obj = new Object();
obj.a = 1;
obj.b = 5;
var arr = new Array();
arr[0] = 5;
arr[1] = 'taxi';
arr[2] = true;
console.log(typeof (Object)); // function
console.log(typeof (Array)); // function
所以说:所有对象都是通过函数来创建的
总结:对象是函数创建的,但是函数本身就是一种对象。----这样迷的关系让我们引入了原型prototype