Передача аргументов функции внутри другой функции

Вот два фрагмента кода. Они делают то же самое. Мой вопрос заключается в том, какой из них представляет собой наилучшую практику и в чем причина этого. Большое спасибо Вам!


function foo(x){
    bar();
    function bar(){
       var y = x + 1;
    }
}

function foo(x){
    bar(x);
    function bar(x){
       var y = x + 1;
    }
}

javascript,function,arguments,

-2

Ответов: 4


function foo(x){
    bar();
    function bar(){
       var y = x + 1;
    }
}

function foo(x){
    bar(x);
    function bar(x){
       var y = x + 1;
    }
}

4-2
0 принят

Второй фрагмент кода лучше, потому что он обеспечивает более многократное повторное использование кода и низкую связь между вашей переменной и функциями. Вместо первого фрагмента кода вы также можете использовать приведенный ниже код, но вы сами избежали этого, потому что это не очень хороший подход. Что касается производительности, считается, что первый код лучше, потому что вы не передаете какой-либо параметр своей функции бара, и всякий раз, когда вы передаете параметр функции, он потребляет процессорный цикл и ресурс.

var x=10;
.....
function foo(){
    bar();
    function bar(){
       var y = x + 1;
    }
}

0

Пример, который вы дали, совершенно не подходит для вашего вопроса. В вашем примере вы можете просто сделать это:

function foo(x){
    var y = x + 1;
}

Но действительно кажется, что ваша функция ничего не достигает, и это даже усложняет нас. И чтобы ответить на ваш вопрос, он ситуативен ; или это зависит от проблемы .


-1

Я бы сказал, что лучшая практика - это то, что легче понять читателю, поэтому для этого тривиального примера это будет так:

function bar(x) {
    var y = x + 1;
}

function foo(x) {
    bar(x);
}

-1

Они почти одинаковы, и это, безусловно, не повлияет на скорость вашего приложения, за исключением случаев, когда вы работаете над действительно огромной программой.

Однако для удобства чтения кода вы должны использовать второй вариант.

Кроме того, на некоторых языках, таких как Java, где вы можете писать и использовать статические функции -> ex: foo.bar (x), вы не сможете так писать. Поэтому, если вы планируете больше учиться и писать лучше, просто используйте второй.

JavaScript, функция, аргументы,
Похожие вопросы