函數(shù)就是對象,代表函數(shù)的對象就是函數(shù)對象。所有的函數(shù)對象是被 Function 這個函數(shù)對象構造出來的。也就是說,F(xiàn)unction 是最頂層的構造器。它構造了系統(tǒng)中所有的對象,包括用戶自定義對象,系統(tǒng)內(nèi)置對象,甚至包括它自已。
Object 是最頂層的對象,所有的對象都將繼承 Object 的原型,你也要知道 Object 也是一個函數(shù)對象,所以說 Object 是被 Function 構造出來的。
Function 與 Object 關系圖:
http://wiki.jikexueyuan.com/project/brief-talk-js/images/103.png" alt="" />
[js] view plaincopy
<script type="text/javascript">
var Foo= function(){}
var f1 = new Foo();
console.log(f1.__proto__ === Foo.prototype);
console.log(Foo.prototype.constructor === Foo);
var o1 =new Object();
console.log(o1.__proto__ === Object.prototype);
console.log(Object.prototype.constructor === Object);
console.log(Foo.prototype.__proto__ === Object.prototype);
//Function and Object
console.log(Function.__proto__ === Function.prototype);
console.log(Object.__proto__ === Function.prototype);
console.log(Object.prototype.__proto__);
console.log(Object.__proto__ === Function.prototype);
</script>
小伙伴們讀代碼的時候可以參考下圖片上的關系圖,希望大家喜歡。