js高階_函式的prototype
阿新 • • 發佈:2022-03-13
函式的prototype屬性
*①
每個函式都有一個prototype屬性,它預設指向一個Object空物件(即稱為:原型物件),比如我們新建了一個函式,沒有向函式的原型物件中新增屬性和方法時,這個prototype指向的Object空物件裡就沒有我們的屬性。
console.log(Date.prototype,typeof Date.prototype);
function Fun(){
}
console.log(Fun.prototype);
這是Date物件的原型
這是自定義fun函式的原型(沒有屬性,因為我們並沒有給該函式原型物件裡新增屬性和方法)
*②
原型物件中有一個屬性constructor,它指向函式物件,如圖:
function Fun(){
}
console.log(Fun.prototype.constructor===Fun);//true
console.log(Date.prototype.constructor===Date);//true
2 給原型物件新增屬性(一般都是方法)
*作用:函式(建構函式)的所有例項物件自動擁有原型物件中的屬性(或方法)
function Fun(){ this.asb=function(){ console.log('word'); } } //給原型物件新增屬性(一般是方法) ===>例項物件可以訪問 Fun.prototype.sayhello=function(){ console.log('hello'); } //例項 var fun=new Fun(); //呼叫原型中的方法 fun.sayhello();
最後輸出結果為hello
這時候輸出建構函式的原型物件可以看到我們剛剛新增的那個方法console.log(Fun.prototype);