JavaScript的繼承的封裝介紹
/**
* 當(dāng)調(diào)用此函數(shù)時(shí),只有第一次參數(shù)傳入,第二個(gè)不存在的情況下,就創(chuàng)建類
* 當(dāng)調(diào)用此函數(shù)時(shí),傳入了兩個(gè)參數(shù),第一個(gè)參數(shù)為基類,第二個(gè)參數(shù)則在基類的基礎(chǔ)上添加內(nèi)容
*/
function extend(obj,prop){
function F(){
}
//如果第一個(gè)參數(shù)為object類型(即json對(duì)象)的話,則將json的key value賦值給F函數(shù)的原型 F.prototype.key = value
if (typeof(obj) == "object") {
for(var name in obj){
F.prototype[name] = obj[name];
}
} else {//如果第一個(gè)參數(shù)為function類型的話,則將次函數(shù)的原型賦值給F函數(shù),prop肯定是傳值的(json對(duì)象),所以將prop賦值給F函數(shù)的原型
F.prototype = obj.prototype;
for(var name in prop){
F.prototype[name] = prop[name];
}
}
return F;
}
//因?yàn)檫@里只有一個(gè)參數(shù),所以此時(shí)會(huì)將json對(duì)象的key,value賦值給extend函數(shù)中的F函數(shù)的原型,然后用person變量接收F函數(shù),此時(shí)person也成為了一個(gè)函數(shù),此函數(shù)也擁有了F函數(shù)的原型 name和sex
var person = extend({
name:"xxc",
sex:"man"
});
//將person函數(shù)傳入,進(jìn)入extend函數(shù)后,首先將person的原型賦值給F函數(shù),然后將第二個(gè)參數(shù)hope:"more money"賦值給F函數(shù),此時(shí)F函數(shù)的原型有三個(gè)東西name,sex,hope
//最后將F函數(shù)返回,導(dǎo)致person的原型也和F函數(shù)一樣,有name,sex,hope
var person = extend(person,{
hope:"more money"
});
alert(person.prototype.name);//xxc
alert(person.prototype.sex);//man
alert(person.prototype.hope);//more money
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>function.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script src="../jquery/jquery-1.10.2.min.js"></script>
<script src="extends2.js"></script>
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<body>
</body>
</html>
相關(guān)文章
JavaScript高級(jí)程序設(shè)計(jì)(第3版)學(xué)習(xí)筆記 概述
在JavaScript面世之初,沒(méi)有人會(huì)想到它會(huì)被應(yīng)用的如此廣泛,也遠(yuǎn)比一般人想象中的要復(fù)雜強(qiáng)大的多,在我自己學(xué)習(xí)的過(guò)程中,曾經(jīng)有過(guò)多次震撼2012-10-10JavaScript中把數(shù)字轉(zhuǎn)換為字符串的程序代碼
本篇文章是對(duì)JavaScript中把數(shù)字轉(zhuǎn)換為字符串的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06javascript標(biāo)準(zhǔn)庫(kù)(js的標(biāo)準(zhǔn)內(nèi)置對(duì)象)總結(jié)
這篇文章主要介紹了javascript標(biāo)準(zhǔn)庫(kù),標(biāo)準(zhǔn)庫(kù)指的是js的標(biāo)準(zhǔn)內(nèi)置對(duì)象,是js這門(mén)語(yǔ)言本身初始時(shí)提供的在全局范圍的對(duì)象,需要的朋友可以參考下2018-05-05JavaScript中關(guān)于indexOf的使用方法與問(wèn)題小結(jié)
indexOf方法的作用是:根據(jù)給定參數(shù)x返回目標(biāo)字符串(可以看成字符的數(shù)組)或數(shù)組中與x相等的項(xiàng)的索引。2010-08-08詳談DOM簡(jiǎn)介及節(jié)點(diǎn)、屬性、查找節(jié)點(diǎn)的方法
下面小編就為大家分享一篇詳談DOM簡(jiǎn)介及節(jié)點(diǎn)、屬性、查找節(jié)點(diǎn)的方法,具有非常好的參考價(jià)值,一起跟隨小編過(guò)來(lái)看看吧,希望對(duì)大家有所幫助2017-11-11說(shuō)說(shuō)掌握J(rèn)avaScript語(yǔ)言的思想前提想學(xué)習(xí)js的朋友可以看看
無(wú)論是公司的同事還是外界的程序員朋友們,大部分人對(duì)JavaScript的高級(jí)應(yīng)用不甚了解,已有的知識(shí)架構(gòu)里會(huì)認(rèn)為JavaScript僅僅是一門(mén)腳本語(yǔ)言,其作用是給頁(yè)面做一些錦上添花的效果,比如表單驗(yàn)證等等。2009-04-04使用Script元素發(fā)送JSONP請(qǐng)求的方法
下面小編就為大家?guī)?lái)一篇使用Script元素發(fā)送JSONP請(qǐng)求的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06