JS中对象分为普通对象和函数对象两种
举例:
// 函数对象
function f1(){};
var f2 = function(){};
var f3 = new Function();
var f4 = Function();
typeof f1;//function
typeof f2;//function
typeof f3;//function
typeof f4;//function
//普通对象
var o1 = {};
var o2 = new f1();
var o3 = new Object();
var o4 = Object();
typeof o1;//object
typeof o2;//object
typeof o3;//object
typeof o4;//object
普通对象没有prototype属性,只有__proto__隐藏属性
函数对象中两个属性都有
prototype属性:指向该函数对象的原型对象 原型对象是个普通对象
__proto__属性:指向创建该对象的函数对象的原型对象普通对象在被创建时自动添加__proto__属性,并将创建该对象的函数对象的原型对象赋值给__proto__属性
原型对象属性
原型对象的值是在函数创建的时候,创建的一个实例对象赋值给了它的构造函数的prototype属性
//原型对象
var temp = new Function();
Function.prototype = temp;