原型講解二:原型是幹什麽用的
阿新 • • 發佈:2017-06-03
效果 gen 全局變量 str his 定義函數 new 結構 改進
模板呢?,結構是不變的,唯一變的就是實參的變化。
前面說了這麽多的原型的概念,那麽原型用在哪裏呢?
之前說過,直接在構造函數外面定義一個函數方法,勢必會造成全局的變量汙染,那麽怎麽避免這個問題呢?那麽就要涉及到在原型上面定義一個方法了:
範例:
function Person(name,age,gender){
this.name=name;
this.age=age;
this.say=function(“我是”+this.name);
}
這是一個簡單的構造函數,那麽是怎麽改進的呢?
改進1:為了防止每次建立一個對象,對象裏包含一個say()函數方法
在構造函數的外面添加了一個say()含數,但是造成了全局的變量汙染。
該進2:使用原型的方法
this.say方法就可以不定義了
看看這裏的定義:
Person.prototype.say=function(){
alert(“我是”+this.name);
}
這樣就完美的解決了上面構造函數外面直接定義函數方法從而汙染全局變量的問題。
再補充幾個專業的術語(其實就是為了讓讀者看不懂,從而達到吹NB的效果,國內學者把這個學的淋漓盡致了,呵呵了)
什麽叫做實例化:
例如 var p=new Person();
就是用new創建了一個對象,該對象擁有構造函數的屬性和方法,有木有感覺構造函數像一個
更專業的叫法:p是Person()這個構造函數的一個實例
原型講解二:原型是幹什麽用的