Перегрузка функций в Javascript - лучшие практики
Я часто так делаю:
C#:
public string CatStrings(string p1) {return p1;}
public string CatStrings(string p1, int p2) {return p1+p2.ToString();}
public string CatStrings(string p1, int p2, bool p3) {return p1+p2.ToString()+p3.ToString();}
CatStrings("one"); // result = one
CatStrings("one",2); // result = one2
CatStrings("one",2,true); // result = one2true
Эквивалент javascript-execution JavaScript:
function CatStrings(p1, p2, p3)
{
var s = p1;
if(typeof p2 !== "undefined") {s += p2;}
if(typeof p3 !== "undefined") {s += p3;}
return s;
};
CatStrings("one"); // result = one
CatStrings("one",2); // result = one2
CatStrings("one",2,true); // result = one2true
Этот конкретный function-overloading пример на самом деле более ecmascript элегантен в javascript, чем function-overloading в C#. Параметры, которые javascript-execution не указаны, в javascript overloading имеют значение undefined, которое overloading в выражении if принимает vanilla-javascript значение false. Однако определение javascript функции не передает информацию overload о том, что p2 и p3 являются javascript-library необязательными. Если вам vanillajs нужна большая перегрузка, jQuery vanillajs решил использовать объект vanilla-javascript в качестве параметра, например .js jQuery.ajax (options). Я function-overloading согласен с ними в том, что overloading это наиболее эффективный overload и четко документированный function-overloading подход к перегрузке, но мне overload редко требуется более одного javascript или двух быстрых необязательных method-overloading параметров.
РЕДАКТИРОВАТЬ: изменен vanillajs тест IF по предложению Яна
javascript
overloading
Перегрузка функций в Javascript - лучшие практики
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.