js 高階 原型物件

2021-10-17 03:28:41 字數 812 閱讀 1983

任何物件都有原型物件,也就是prototype屬性,任何原型物件也是乙個物件,該物件就有__proto__屬性,這樣一層一層往上找,就形成了一條鏈,我們稱此為原型鏈;

1.建構函式的prototype屬性指向了建構函式原型物件

2.例項物件是由建構函式建立的,例項物件的__proto__屬性指向了建構函式的原型物件

3.建構函式的原型物件的constructor屬性指向了建構函式,例項物件的原型的constructor屬性也指向了建構函式

當訪問乙個物件的屬性(包括方法)時,首先查詢這個物件自身有沒有該屬性。

如果沒有就查詢它的原型(也就是 __proto__指向的 prototype 原型物件)。

如果還沒有就查詢原型物件的原型(object的原型物件)。

依此類推一直找到 object 為止(null)。

__proto__物件原型的意義就在於為物件成員查詢機制提供乙個方向,或者說一條路線。

function

person

(uname, age)

var that;

person.prototype.

sing

=function()

var ldh =

newstar

('劉德華',18

);// 1. 在建構函式中,裡面this指向的是物件例項 ldh

console.

log(that === ldh)

;//true

// 2.原型物件函式裡面的this 指向的是 例項物件 ldh

JS 物件 JS原型 原型鏈

參考學習 js物件 構造器函式 建立物件的函式。物件分為普通物件和函式物件。所有物件都有 proto 屬性 函式物件不止有 proto 屬性,還有prototype屬性 稱為原型物件 1.new function 產生的物件都是函式物件。2.所有函式物件的 proto 都指向function.pro...

JS原型物件

原型prototype 將函式定義在全域性作用域中的缺點 1.會汙染全域性作用域的命名空間,如 函式functiona 那麼在全域性作用域中就不能再出現functiona這個命名了。2.定義在全域性作用域中不安全。因此,就用到了主角 原型 1.所有的函式都有原型物件 2.當函式以建構函式的形式呼叫時...

js物件 原型

物件 在js裡,除了字串,數字,boolean,null和undefined之外,其他的js值都是物件。js中物件可以分為普通物件和函式物件。普通物件 是除函式物件外的,都可以成為普通物件。函式物件 是通過new function產生的物件。這一種是最常見的定義函式的方法 function foo1...