gpt4 book ai didi

Javascript引用和内存分配的区别

转载 作者:行者123 更新时间:2023-11-30 17:18:36 25 4
gpt4 key购买 nike

分配给每个 Javascript 引用的内存量是否取决于其引用的对象/函数?换句话说,如果我创建一个对小对象的引用,然后创建一个对大对象的引用,这些引用在分配的内存中会有多大差异?

例如:

obj1 = {foo: "bar"}
ref1 = obj1
ref2 = window

ref1ref2 在内存分配上有什么区别?

我为什么要问

我在作用域上下文元素中使用 jQuery.data() 存储引用(见下文),我只是想更了解我正在存储什么以及我存储了多少. jQuery.data() 是存储引用还是创建新对象? -(可能是一个新的 SO 问题)

我的 Coffeescript 类:

class Renderer
constructor: ->
jQuery("<div/>", {class: "myScope", data: @}).appendTo("body")

在 Javascript 中:

var Renderer;
Renderer = (function() {
function Renderer() {
jQuery("<div/>", {
"class": "myScope",
data: this
}).appendTo("body");
}
return Renderer;
})();

最佳答案

不,JavaScript 赋值不复制对象,它们复制引用。 ref1ref2 变量应该没有区别,只是它们指向不同的对象。

Does jQuery.data() store the reference or create a new object?

它们存储引用,这就是重点。它不会放置对象的副本或序列化。

关于Javascript引用和内存分配的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25605601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com