Ben JavaScript nasıl çalıştığını daha iyi anlamak için çalışıyorum ve şu kod beni dinletiyor: beklendiği gibiBir varlığa atanırken işlev adı neden kayboluyor?
function notInVar(a, b) {
return a + b
}
var inVar = function doesThisWork(a, b) {
return a + b
}
document.writeln('2 + 2 = ' + notInVar(2, 2));
document.writeln('3 + 3 = ' + inVar(3, 3));
document.writeln('4 + 4 = ' + doesThisWork(4, 4));
Chrome'da, ilk iki document.writelns sonra Chrome'da "Uncaught ReferenceError: doesThisWork is not defined"
olsun, yürütün. Neden ikinci işlevi doesThisWork
adıyla arayamıyorum? Bu konuda, notInVar'ın ilk işlev nesnesi nerede saklanır?
@stackErr: İyi görünüyor. Bu adlandırılmış bir işlev ifadesidir. – elclanrs
emin değilim, ama değişken kapsamı derim. –
[Bu kullanışlı görünüyor] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope#Function_constructor_vs._function_declaration_vs._function_expression). – Marty