繁体   English   中英

Javascript-使用回调将元素复制到对象的数组

[英]Javascript - copying elements to the object's array with callback

 let client1 = { accounts: Array(), accounts_setter: function(obtained_accounts) { i = obtained_accounts.length; this.accounts = obtained_accounts.slice(); } } function generateAndPushElements(callback) { var toPassAccounts = ['a', 'b', 'c']; callback(toPassAccounts); } generateAndPushElements(client1.accounts_setter); console.log(client1.accounts); <!-- begin snippet: js hide: false console: true babel: false --> 

以下代码不会填充对象的数组,但我认为这样做的过程是正确的。

但是范围是正确的。

这里的问题是, this不是回调中的正确上下文。 您没有设置client1的属性。

你可以用

generateAndPushElements(client1.accounts_setter.bind(client1));

例如。

如果您在带有异步功能的实际代码中使用此构造,请小心:在任何异步任务返回之前,您的console.log在记录时都会放错位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM