1. μλ°μ€ν¬λ¦½νΈ μμ§μ ν¨μλ₯Ό μ΄λμ νΈμΆνλμ§κ° μλ ν¨μλ₯Ό μ΄λμ μ μνλμ§μ λ°λΌ μμ μ€μ½νλ₯Ό κ²°μ νλ€.
2. ν¨μκ° μ’
λ£λ λ μ€ν컨ν
μ€νΈλ μ€ν 컨ν
μ€νΈ μ€νμμ μ κ±°λκ³ , κ΄λ ¨ λ μ컬 νκ²½κΉμ§ μ κ±°λλ€.
3. λͺ¨λ ν¨μλ ν΄λ‘μ κ° λ μ μμ§λ§, λͺ¨λ ν¨μκ° ν΄λ‘μ λ μλλ€.
ν΄λ‘μ λ₯Ό μ μ¬μ©νλμ§ μ΄μ μ μ¬μ©νμ λ λ¨μ μ μμ νμμ€.
λ€μ μ½λλ₯Ό λ³΄κ³ , μ€ν κ²°κ³Όλ₯Ό μ΄μΌκΈ°νκ³ ν΄λ‘μ λ₯Ό ν΅ν΄ μμ ν΄μ μλν λλ‘ λμνλλ‘ μμ νμμ€.
let i = 0 ;
for ( i = 0 ; i < 5 ; i ++ ) {
setTimeout ( function ( ) {
console . log ( i )
} , i * 1000 ) ;
}
μλμ κ°μ μ½λμμ outer
ν¨μμ μ€ν 컨ν
μ€νΈκ° μ’
λ£λμμμλ inner
μμ μΈλΆν¨μ(outer) μ°Έμ‘°κ° κ°λ₯ν μ΄μ λ₯Ό μμ±νμμ€.
function outer ( ) {
let x = 0 ;
function inner ( ) {
return x ;
}
return inner ;
}
const printX = outer ( ) ;
μλ μ½λμ μ€ν κ²°κ³Όλ₯Ό μμ±νμκ³ , ν΄λ‘μ λ₯Ό λ§λλ κ΄μ μμ λ¬Έμ μ μ΄ μλ€λ©΄ μμ±νμμ€.
const Counter = ( function ( ) {
function Counter ( ) {
this . num = 0 ;
}
Counter . prototype . increase = function ( ) {
return ++ this . num ;
} ;
Counter . prototype . decrease = function ( ) {
return -- this . num ;
} ;
return Counter ;
} ( ) ) ;
const counter = new Counter ( ) ;
console . log ( counter . increase ( ) ) ; // (1)
console . log ( counter . increase ( ) ) ; // (2)
console . log ( counter . decrease ( ) ) ; // (3)
console . log ( counter . decrease ( ) ) ; // (4)
λ€μ μ½λμ μΆλ ₯κ°μ μμνκ³ μ΄μ λ₯Ό μμ±νμμ€. λ§μ½ μΆλ ₯κ°μ΄ 0 1 2
μ΄ μλλΌλ©΄ κ°λ¨νκ² κ°μ λ°©λ²μ μμ±νμμ€.
var funcs = [ ] ;
for ( var i = 0 ; i < 3 ; i ++ ) {
funcs [ i ] = function ( ) { return i ; } ;
}
for ( var j = 0 ; j < 3 ; j ++ ) {
console . log ( funcs [ j ] ( ) ) ;
}
λ€μ λ¬Έμ₯μ true or falseλ₯Ό νλ¨νμΈμ.
( 1 ) ν΄λ‘μ λ μλ°μ€ν¬λ¦½νΈ κ³ μ μ κ°λ
μ΄λ€ .
( 2 ) ν΄λ‘μ λ μ€μ²©ν¨μκ° μμ μ€μ½νμ μλ³μλ₯Ό μ°Έμ‘°νκ³ μκ³ μ€μ²©ν¨μκ° μΈλΆν¨μλ³΄λ€ λ μ€λ μ μ§λλ κ²½μ°μ νμ νλ κ²μ΄ μΌλ°μ μ΄λ€ .
( 3 ) μλ°μ€ν¬λ¦½νΈ κ°μ²΄μ λͺ¨λ νλ‘νΌν°μ λ©μλλ κΈ°λ³Έμ μΌλ‘ publicνλ€ .
λ€μ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΄λ‘μ μ νμ©μ λν΄ κ°λ¨ν μμ νμΈμ.
const increase = ( function ( ) {
let num = 0 ;
return function ( ) {
return ++ num ;
} ;
} ) ( ) ;
increase ( ) ;
increase ( ) ;
λ€μ μ½λμ μ€ν κ²°κ³Όλ₯Ό μμΈ‘νμΈμ.
var funcs = [ ] ;
for ( var i = 0 ; i < 3 ; i ++ ) {
funcs [ i ] = function ( ) {
return i ;
} ;
}
for ( var j = 0 ; j < funcs . length ; j ++ ) {
console . log ( funcs [ j ] ( ) ) ;
}