請區分兩個物件:function物件及原型物件;以object為例
每個函式本身就是乙個建構函式 每個函式又對應乙個原型物件
1 當建立乙個變數時
var aa = new object(); //等價於var aa={}現在記憶體中開闢乙個空間,再將該變數的_proty_屬性指向建構函式(object函式物件)的原型objectaa.name = 'fjs';
console.log(aa.__proto__ === object.prototype);
2 當定義乙個函式時,
在記憶體中既開闢函式物件的空間,又開闢函式原型物件的空間
原型物件的_proto_預設指向object的原型物件,因為所有物件都繼承object物件3驗證上面兩個結論
fjs物件是繼承object物件
fjs變數的的建造過程:
(1)記憶體開闢建立乙個新的物件fjs(空的)
(2)將當前建構函式(fjs為建構函式物件)的作用域(scope?)指向剛剛建立的新物件(fjs),也就是將建構函式(fjs)的this指向剛剛建立的物件(fjs),而且要為這個物件的內部__proto__屬性賦值,用它指向當前建構函式的prototype屬性的值(也就是fjs的原型物件)
(3)執行建構函式中的**,也就是呼叫this(this.name=fjs賦值過程),為剛剛建立的物件賦值
(4)返回該物件(var fjs= new fjs())
javascript 高階 基於原型鏈的繼承
function parent parent.prototype.parentvalue function function children 將children的原型指向parent的乙個例項,完成繼承 children.prototype new parent children.prototyp...
JavaScript的原型鏈
首先介紹下原型 原型的作用 把方法放到原型中,就可以讓同型別的物件共享 當我建立乙個建構函式。建構函式裡有原型。通過 建構函式名.prototype獲取到當前建構函式的原型。function student name,age,gender this.sayhi function 原型內部自帶乙個co...
JavaScript原型以及原型鏈
原型物件的用途是為每個例項物件儲存共享的方法和屬性,它僅僅是乙個普通物件而已。並且所有的例項是共享同乙個原型物件,因此有別於例項方法或屬性,原型物件僅有乙份。在訪問乙個物件的屬性的時候,首先在當前物件中找,如果沒有在其原型物件找 復用的內容放在prototype,讓類的例項擁有相同的功能 小紅書上的...