JS原型對象的創(chuàng)建方法詳解
本文實例講述了JS原型對象的創(chuàng)建方法。分享給大家供大家參考,具體如下:
使用js的prototype屬性的時候,創(chuàng)建對象的方式是存在優(yōu)先級的
1、如果方法中存在構(gòu)造方法就先使用方法中的構(gòu)造方法
2、如果方法中不存在構(gòu)造方法則繼續(xù)查找prototype原型的構(gòu)造方法
<html>
<head>
<TITLE>class_obj_js_class</TITLE>
<script language=javaScript>
function a(name){
//alert(name);//彈出的值是undefined
//alert(null==name);//true
if(null == name){
this.name = name;
}
}
function b(name){
//alert(name);//彈出的值是undefined
//false,this.name沒有重新賦值,還是new創(chuàng)建的值prototype.name="TOm"
if(null != name){
this.name = name;
}
}
//有參構(gòu)造方法
function c(name){
//alert(name);//彈出的值是undefined
//如果name為true則不管后面是什么就直接返回第一個值
//如果name為false則不管后面是什么直接返回后面的值
this.name = name || "Jack";//如果name為空則賦值為后面的Jack
}
//無參構(gòu)造方法
function d(){
}
a.prototype.name = "Tom";
b.prototype.name = "Tom";
c.prototype.name = "Tom";
d.prototype.name = "Tom";
//有參構(gòu)造方法
alert(new a().name); //undefined
alert(new b().name);//Tom
alert(new c().name);//Jack
alert(new d().name);//使用無參構(gòu)造方法
</script>
<body >
</body>
</html>
備注:
1、一般我們在方法中添加“對象”的屬性
2、在prototype屬性后面添加方法
這樣做的目的是為了提高代碼的復用,可以“無限”給對象添加方法,便于拓展
注意:為了提高JS的效率,要注意再使用prototype鏈的時候應(yīng)該盡量限定在一、二級,因為瀏覽器會自動去循環(huán)遍歷,深度太深了之后會影響效率
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
JavaScript提高網(wǎng)站性能優(yōu)化的建議(二)
這篇文章主要介紹了JavaScript提高網(wǎng)站性能優(yōu)化的建議(二)的相關(guān)資料,需要的朋友可以參考下2016-07-07
JS+CSS實現(xiàn)鼠標滑過時動態(tài)翻滾的導航條效果
這篇文章主要介紹了JS+CSS實現(xiàn)鼠標滑過時動態(tài)翻滾的導航條效果,涉及JavaScript動態(tài)設(shè)置css樣式動畫過度效果的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09
關(guān)于meta viewport中target-densitydpi屬性詳解(推薦)
這篇文章主要介紹了關(guān)于meta viewport中target-densitydpi屬性詳解,通過不同的縮放比例實現(xiàn)了不同的預覽效果,具體操作步驟大家可查看下文的詳細講解,感興趣的小伙伴們可以參考一下。2017-08-08

