}
//如果第一個參數為object類型(即json對象)的話,則將json的key value賦值給F函數的原型 F.prototype.key = value
if (typeof(obj) == "object") {
for(var name in obj){
F.prototype[name] = obj[name];
}
} else {//如果第一個參數為function類型的話,則將次函數的原型賦值給F函數,prop肯定是傳值的(json對象),所以將prop賦值給F函數的原型
F.prototype = obj.prototype;
for(var name in prop){
F.prototype[name] = prop[name];
}
}
return F;
}
//因為這里只有一個參數,所以此時會將json對象的key,value賦值給extend函數中的F函數的原型,然后用person變量接收F函數,此時person也成為了一個函數,此函數也擁有了F函數的原型 name和sex
var person = extend({
name:"xxc",
sex:"man"
});
//將person函數傳入,進入extend函數后,首先將person的原型賦值給F函數,然后將第二個參數hope:"more money"賦值給F函數,此時F函數的原型有三個東西name,sex,hope
//最后將F函數返回,導致person的原型也和F函數一樣,有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
代碼如下:
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com