// 關於 function object 和protoprototype
// 1.每乙個物件例項都有乙個proto屬性,這個屬性就是指向 物件建構函式的原型.
let b = new function();
console.log(b.proto=== function.prototype); // true
console.log(function.prototype); // [function]
console.log(function.prototype.prototype); // undefined
// 2. function 是 object, object 也是 function
console.log(function instanceof object); // true
console.log(object instanceof function); // true
console.log(b instanceof object); // true
console.log(b instanceof function); // true
// function 和 object 區別
// 1.由 function 創造出來的例項物件,既是 object 又是 function
// 2.由 object 創造出來的例項物件, 是 object,但不是 function
let a = new object();
console.log(a instanceof object); // true
console.log(a instanceof function); // false
proto=== object.prototype); // true
console.log(object.prototype); // {}
console.log(object.prototype.prototype); // undefined
// 如何形成原型鏈?
class a
sayhi()
}class b extends a
}console.log(a.prototype); // {}
console.log(b.prototype); // {}
// 下面演示了 原型鏈
// b->a->object
let obj = new b();
console.log(obj.proto=== b.prototype); // true;
console.log(b.prototype.proto=== a.prototype); // true
console.log(a.prototype.proto=== object.prototype);
console.log(object.prototype.proto); // null
console.log(a.proto=== function.prototype); // true
console.log(b.proto=== function.prototype); // false
console.log(b.proto.constructor); // [function: function]
// 只有 通過 new a(); 建立的物件的proto才指向 a.prototype
// 疑問: b.proto到底指向哪?
console.log(b.proto=== a.prototype); // false
弄懂js中的原型物件
proto 物件的原型物件 prototype 返回函式的原型物件 constructor 返回建立此物件的陣列函式的引用 instanceof 判斷是不是函式的例項 getprototypeof 返回物件的原型物件 setprototypeof 設定物件的原型物件 object.create 建立...
JS 物件 JS原型 原型鏈
參考學習 js物件 構造器函式 建立物件的函式。物件分為普通物件和函式物件。所有物件都有 proto 屬性 函式物件不止有 proto 屬性,還有prototype屬性 稱為原型物件 1.new function 產生的物件都是函式物件。2.所有函式物件的 proto 都指向function.pro...
JS原型物件
原型prototype 將函式定義在全域性作用域中的缺點 1.會汙染全域性作用域的命名空間,如 函式functiona 那麼在全域性作用域中就不能再出現functiona這個命名了。2.定義在全域性作用域中不安全。因此,就用到了主角 原型 1.所有的函式都有原型物件 2.當函式以建構函式的形式呼叫時...