原型对象

2012-09-05

创建一个叫做fn的新函数对象:

var fn = function() {};

也可以这样创建:

var fn = new Function();

这个刚创建的函数对象fn将自动拥有一个prototype属性,这个prototype属性所指向的就是函数对象fn的原型对象

console.log(fn.prototype ? "Y" : "N"); //Y

这个prototype属性属于该函数对象fn自身而不是继承自它的原型对象fn.prototype

console.log(fn.hasOwnProperty("prototype") ? "Y" : "N"); //Y

同时,这个函数对象fn自身还拥有一个constructor属性

console.log(fn.constructor ? "Y" : "N"); //Y

但是,这个constructor属性并不属于函数对象fn自身

console.log(fn.hasOwnProperty("constructor") ? "Y" : "N"); //N

而是一个指向该函数对象fn的构造函数的指针

console.log(fn.constructor === Function ? "Y" : "N"); //Y

Function作为一个所有函数对象的根对象,也具有constructor属性,但是这个constructor属性指向它自身

console.log(Function.constructor === Function ? "Y" : "N"); //Y

s@zhso.netPay