Если параметр функции передает значение, почему мы можем захватить атрибут объекта с помощью Object.defineProperty - PullRequest
0 голосов
/ 11 марта 2020

// code snippets1

var obj = {a: 'aa'}
function reactive(obj, key, value) {
    Object.defineProperty(obj, key, {
        enumerable: true,
        configurable: true,
        get() {
            return value
        },
        set(val) {
            value = val
        }
    })
}
function observe(obj) {
    Object.keys(obj).map((key, index) => {
        reactive(obj, key, obj[key])
    })
}
observe(obj)
obj.a //'aa'
obj.a ='bb' //'bb'

// code snippets2

var obj = {a: 'aa'}
function reactive(obj, key, value) {
   value = 'bb'
}
function observe(obj) {
    Object.keys(obj).map((key, index) => {
        reactive(obj, key, obj[key])
    })
}
observe(obj)
obj.a //'aa'

code snippets2 показывает значение параметра, передаваемое параметром, почему два фрагмента кода получают разные результаты?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...