分配给每个Javascript引用的内存量是否取决于它引用的对象/函数?换句话说,如果我创建对小对象的引用然后创建对大对象的引用,引用在分配的内存中会有多少差异?
例如:
obj1 = {foo: "bar"}
ref1 = obj1
ref2 = window
ref1
和ref2
之间的内存分配有何不同?
为什么我要求
我在作用域上下文元素中使用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;
})();
答案 0 :(得分:2)
不,JavaScript分配不复制对象,它们复制引用。 ref1
和ref2
变量之间应该没有区别,除非它们指向不同的对象。
jQuery.data()是否存储引用或创建新对象?
他们存储引用,这就是重点。它不会放置对象的副本或序列化。