function addMethod(object, name, f)
{
var old = object[name];
object[name] = function()
{
// f.length為函數(shù)定義時(shí)的參數(shù)個(gè)數(shù)
// arguments.length為函數(shù)調(diào)用時(shí)的參數(shù)個(gè)數(shù)
if (f.length === arguments.length)
{
return f.apply(this, arguments);
}
else if (typeof old === "function")
{
return old.apply(this, arguments);
}
};
}
// 不傳參數(shù)時(shí),返回所有name
function find0()
{
return this.names;
}
// 傳一個(gè)參數(shù)時(shí),返回firstName匹配的name
function find1(firstName)
{
var result = [];
for (var i = 0; i < this.names.length; i++)
{
if (this.names[i].indexOf(firstName) === 0)
{
result.push(this.names[i]);
}
}
return result;
}
// 傳兩個(gè)參數(shù)時(shí),返回firstName和lastName都匹配的name
function find2(firstName, lastName)
{
var result = [];
for (var i = 0; i < this.names.length; i++)
{
if (this.names[i] === (firstName + " " + lastName))
{
result.push(this.names[i]);
}
}
return result;
}
var people = {
names: ["Dean Edwards", "Alex Russell", "Dean Tom"]
};
addMethod(people, "find", find0);
addMethod(people, "find", find1);
addMethod(people, "find", find2);
console.log(people.find()); // 輸出["Dean Edwards", "Alex Russell", "Dean Tom"]
console.log(people.find("Dean")); // 輸出["Dean Edwards", "Dean Tom"]
console.log(people.find("Dean", "Edwards")); // 輸出["Dean Edwards"]
函數(shù)重載
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 一.函數(shù) 1.函數(shù)重載,函數(shù)覆蓋,函數(shù)隱藏三者的區(qū)別,概念 函數(shù)重載:在一個(gè)類中,函數(shù)與函數(shù)的函數(shù)名相同,參數(shù)類型...
- 先上題:下列運(yùn)算符都可以被友元函數(shù)重載的是:A) =,+,-,B) [],+,(),newC) ->,+,,>>D...
- 內(nèi)聯(lián)函數(shù) 使用inline關(guān)鍵字將函數(shù)變?yōu)閮?nèi)聯(lián)函數(shù),函數(shù)內(nèi)聯(lián)是為了降低函數(shù)調(diào)用時(shí)占用的多余時(shí)間,多余時(shí)間的產(chǎn)生在,...
- C++遠(yuǎn)征 [TOC] 一、函數(shù)參數(shù)默認(rèn)值 1.函數(shù)參數(shù)默認(rèn)值的聲明 2.函數(shù)參數(shù)默認(rèn)值的定義 3.函數(shù)參數(shù)默認(rèn)值...
- 內(nèi)聯(lián)函數(shù) 使用inline關(guān)鍵字將函數(shù)變?yōu)閮?nèi)聯(lián)函數(shù),函數(shù)內(nèi)聯(lián)是為了降低函數(shù)調(diào)用時(shí)占用的多余時(shí)間,多余時(shí)間的產(chǎn)生在,...