#javascript
#javascript
Вопрос:
почему (q) не определен
var query = function(n) {
var q = "appear preson"
n()
}
query(function n() {
console.log(q)
})
Комментарии:
1. Потому что он существует только в другой функции.
2. Узнайте о областях действия переменных.
Ответ №1:
Вызов a function
внутри другого function
не создает замыкания. Вам нужно объявить функцию внутри другой функции, чтобы создать замыкание.
Замыкание — это комбинация функции и лексической среды, в которой эта функция была объявлена
В вашем случае вы можете q
в качестве аргумента.
var query=function(n){
var q="appear preson"
n(q)
}
query(function n(q){
console.log(q)
}
)
Ответ №2:
В вашем коде область действия q
зависит только от функции. И вы пытаетесь получить доступ к той же переменной из этой функции. Вам нужно объявить q
вне функции. Пожалуйста, смотрите приведенный ниже код.
var q;
var query=function(n){
q="appear preson"
n()
}
query( function n(){
console.log(q)
} )