var obj = { name: 2, age: 3}
function react ( obj, property, value) {
var description = {
get () { return value},
set (newValue) {
return value = newValue }
}
Object.defineProperty(obj, property, description)
}
react(obj, 'name', obj['name'])
react(obj, 'age', obj['age'])
其中的value = newValue,对形参的赋值,应该改变了它的指向,应该和obj['name']失去了联系,为啥赋值可以改变obj['name']的值。
你说的没错,赋值确实使得内部的 value 与原来的 obj['name'] 失去了联系。
但是这段代码能工作的原因,和你 react 函数的第三个参数是否传 obj['name'] 没有关系。