2014-10-22 5 views
0

хорошо я строй некоторые яваскрипт кода и им просто любопытно о тесте прохождения функции в аргументе против прямого доступаПередача функции в качестве аргументов в JavaScript теста [прохождение функции против прямого доступа]

Я получил следующие функции

testIt(function(){ 
    alert('Hi test'); 
}); 

function testIt(func){ 
    func(); 
}; 

function testIt2(){ 
    alert('Hi test'); 
}; 

А теперь как насчет testIt против testIt2? Будет ли тест медленнее?

+3

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

+0

testIt и testIt2 не являются абсолютно одинаковой функцией, даже если они будут работать в этом примере. Яблоки и апельсины. Поскольку не существует «не релевантного/не интересного» тега, я предлагаю закрыть его слишком широко. – GameAlchemist

+0

Зачем вообще вызывать функцию 'testIt'? Просто прямо сделайте только «alert (« hi test »)», это будет намного быстрее. – Bergi

ответ

0

Я test it on jspref и вот мой результат:

Анонимный звонок имеют одинаковую скорость с прямым набором номера. Но создание функции на лету работы на 80% медленнее.

Так что если вы хотите запустить некоторый код в цикле - сначала определите функцию, а затем пропустите ее анонимно. Это дает достаточную читаемость и скорость.