绑定功能不返回对象的引用


let someArgs = {x:1, y:2}
let dog = args => {return args}
let cat = dog.bind(null, someArgs)
someArgs = {x:3, y: 4}
cat() // {x:1, y:2}

有人可以解释为什么呼叫cat不返回{x:3, y:4}?我认为对象是通过引用传递的?

javaScript不是通过参考(object referend 通过value(传递的,这就是为什么您期望不发生的事情,请在此处查看

在您的代码中,someArgs = {x:3, y:4}创建新对象,而是执行建议的方式

let someArgs = {x:1, y:2}
let dog = args => {return args}
let cat = dog.bind(null, someArgs)
someArgs = {x:3, y: 4}
cat() // {x:1, y:2}

建议的方法:

let someArgs = {x:1, y:2}
let dog = args => {return args}
let cat = dog.bind(null, someArgs)
someArgs.x = 3;
someArgs.y = 4;
cat() // {x:1, y:2}

最新更新