我们是否可以安全地从套接字参数的回调中分配对象引用
Can we safely assign an object reference from a socket argument's callback
我想知道我是否通过将我从回调接收的对象的引用分配给另一个变量来做一些危险的事情,是否有可能"丢失"这些数据?
一个非常简单的示例,发生在服务器端,来自套接字的回调:
var Users [];
socket.on('receive-user', function(User) {
Users.push(User);
});
在这里,我将变量User
的引用推送到我的数组Users
中,但我无法解释在作用域结束时User
的原始变量是什么,那么,它危险吗?此引用是否有可能在下一次回调时更改?
当我从数据库获取模型时,我也会这样做,甚至将套接字本身存储到User
变量中,但我真的想知道这是否不是一个大错误!
这
完全没问题。只要仍有内容引用User
对象(在本例中为 Users 数组),它就不会被垃圾回收。
这通常是垃圾回收语言的工作方式。这是你在垃圾回收语言中看不到malloc
等人的原因之一——基本上所有的变量声明都是malloc'ed
的。
相关文章:
- AngularJS:我可以跳过函数参数回调吗
- 要求未定义JS回调参数
- 用于回调的javascript参数
- 回调函数中传递参数的困难(Google Map API Markers)
- 如何正确地将参数传递给RequireJS回调函数
- 用javascript记录传递给回调的参数的约定是什么
- 将额外的参数传递给jquery.延迟回调
- Axios spread()具有未知数量的回调参数
- 在Javascript中向回调添加参数
- javascript,将参数传递给函数内部的闭包中的回调
- 如何从参数数组中调用回调
- 如何在回调函数中传递参数
- 如何使用传递参数回调 JavaScript 对象属性
- 了解匿名函数中的参数(回调示例)
- Nodejs expressJS 路由,参数回调未触发
- 如何获得访问变量/传递参数回调与d3
- Javascript第一个参数路径最后一个参数回调
- 参数/回调不匹配
- 按钮单击传递参数回调
- 在DistanceMatrixStatus中传递参数回调或设置变量值