JS筆記 原型物件

2021-10-21 19:55:07 字數 939 閱讀 1602

原型prototype

我們所建立的每乙個函式,解析器都會向函式中新增乙個屬性prototype,這個屬性對應著乙個物件,這個物件就是我們所謂的原型物件。

如果函式作為普通函式呼叫prototype沒有任何作用,當函式以建構函式的形式呼叫時,它所建立的物件中都會有乙個隱含的屬性,指向該建構函式的原型物件,我們可以通過__proto__來訪問改屬性。

原型物件就相當於乙個公共的區域,所有同乙個類的例項都可以訪問到這個原型物件,我們可以將物件中共有的內容,統一設定到原型物件中。

當我們訪問物件的乙個屬性或方法時,它會先在物件自身中尋找,如果有則直接使用,如果沒有則會去原型物件中尋找,如果找到則直接使用。

以後我們建立建構函式時,可以將這些物件共有的屬性和方法,統一新增到建構函式的原型物件中,這樣不用分別為每乙個物件新增,也不會影響到全域性作用域,就可以使每個物件都具有這些屬性和方法了。

例:

function dog()

dog.prototype.a="我是原型中的a";

var dog1=new dog();

var dog2=new dog();

dog2.a="我是dog2中的a"

alert(dog1.a); //我是原型中的a

alert(dog2.a); //我是dog2中的a

使用in檢查物件中是否有某個屬性時,如果物件中沒有,但原型中有也會返回true。

使用物件的hasownproperty檢查時,只有物件中有某個屬性時才會返回true。

原型物件也是物件,它也有原型。

當我們使用乙個物件的屬性或方法時,會先在自身中尋找,自身中如果有則直接使用,如果沒有,就去原型物件中找,如果原型物件中有,就直接使用,如果沒有就去原型的原型中找,直到找到object物件的原型,object物件的原型沒有原型,如果在object中依然沒有找到,則返回undefined。

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...