js中的物件 函式 原型

2022-08-23 03:45:11 字數 2004 閱讀 6335

// 關於 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.當函式以建構函式的形式呼叫時...