Javascript引用和内存分配的差异

时间:2014-09-01 12:12:10

标签: javascript jquery coffeescript jquery-data

分配给每个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;
})();

1 个答案:

答案 0 :(得分:2)

不,JavaScript分配不复制对象,它们复制引用。 ref1ref2变量之间应该没有区别,除非它们指向不同的对象。

  

jQuery.data()是否存储引用或创建新对象?

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

相关问题