Javascript 是“的that.push和that.pop元素吗?”;即={}";对象文字?

Javascript 是“的that.push和that.pop元素吗?”;即={}";对象文字?,javascript,arrays,Javascript,Arrays,使用“那个”有什么特别的原因吗 关于使用“that”的注意事项: 我找到了一条解释“那个”的线索:。其中一位响应者说:“按照惯例,我们创建了一个私有This变量。这用于使私有方法可以使用该对象。这是ECMAScript语言规范中的一个错误的解决方法,该错误导致内部函数的设置不正确。”因此,我很困惑这里的“that”是否有任何特殊用途 另外,为什么不简单地指定一个var名称来替换那个.push呢?多谢各位 var LinkedList = function(e){ var that = {}

使用“那个”有什么特别的原因吗

关于使用“that”的注意事项: 我找到了一条解释“那个”的线索:。其中一位响应者说:“按照惯例,我们创建了一个私有This变量。这用于使私有方法可以使用该对象。这是ECMAScript语言规范中的一个错误的解决方法,该错误导致内部函数的设置不正确。”因此,我很困惑这里的“that”是否有任何特殊用途

另外,为什么不简单地指定一个var名称来替换那个.push呢?多谢各位

var LinkedList = function(e){

  var that = {}, first, last;

  that.push = function(value){
    var node = new Node(value);
    if(first == null){
      first = last = node;
    }else{
      last.next = node;
      last = node;
    }
  };

  that.pop = function(){
    var value = first;
    first = first.next;
    return value;
  };
  var Node = function(value){
    this.value = value;
    var next = {};
  };

  return that;
}; 
问题1:…(2)是对象数组。是这样吗

没有。正如Zack所评论的那样,#2将一个对象分配给x变量

问题2:假设我的理解就在上面

不幸的是,事实并非如此

有人能解释一下为什么下面的代码要创建that.push和[that.pop],然后将它们存储在that对象中----that={}

代码将为该对象指定一个对象。对象没有push或pop方法。这种设计显然要求LinkedList返回的对象具有这样的方法,因此添加了这些方法

问题1:…(2)是对象数组。是这样吗

没有。正如Zack所评论的那样,#2将一个对象分配给x变量

问题2:假设我的理解就在上面

不幸的是,事实并非如此

有人能解释一下为什么下面的代码要创建that.push和[that.pop],然后将它们存储在that对象中----that={}

代码将为该对象指定一个对象。对象没有push或pop方法。这种设计显然要求LinkedList返回的对象具有这样的方法,因此添加了这些方法

问题1:…(2)是对象数组。是这样吗

没有。正如Zack所评论的那样,#2将一个对象分配给x变量

问题2:假设我的理解就在上面

不幸的是,事实并非如此

有人能解释一下为什么下面的代码要创建that.push和[that.pop],然后将它们存储在that对象中----that={}

代码将为该对象指定一个对象。对象没有push或pop方法。这种设计显然要求LinkedList返回的对象具有这样的方法,因此添加了这些方法

问题1:…(2)是对象数组。是这样吗

没有。正如Zack所评论的那样,#2将一个对象分配给x变量

问题2:假设我的理解就在上面

不幸的是,事实并非如此

有人能解释一下为什么下面的代码要创建that.push和[that.pop],然后将它们存储在that对象中----that={}

代码将为该对象指定一个对象。对象没有push或pop方法。这种设计显然要求LinkedList返回的对象具有这样的方法,因此添加了这些方法

(1) 是字符串数组

是的,没错。但是,由于Javascript中没有严格的类型,因此更好的描述应该是包含字符串的数组。数组不限于包含字符串,因为它创建时只包含字符串

(2) 是对象的数组

不,那不对。它是一个对象,所以它包含属性。每个属性都是一个名称和一个值

对象不是数组,但数组实际上是对象。数组可以有项,但也可以有命名属性

LinkedList
函数创建一个对象,该对象具有类似于数组的
push
pop
方法,但项目的存储方式与数组不同

(1) 是字符串数组

是的,没错。但是,由于Javascript中没有严格的类型,因此更好的描述应该是包含字符串的数组。数组不限于包含字符串,因为它创建时只包含字符串

(2) 是对象的数组

不,那不对。它是一个对象,所以它包含属性。每个属性都是一个名称和一个值

对象不是数组,但数组实际上是对象。数组可以有项,但也可以有命名属性

LinkedList
函数创建一个对象,该对象具有类似于数组的
push
pop
方法,但项目的存储方式与数组不同

(1) 是字符串数组

是的,没错。但是,由于Javascript中没有严格的类型,因此更好的描述应该是包含字符串的数组。数组不限于包含字符串,因为它创建时只包含字符串

(2) 是对象的数组

不,那不对。它是一个对象,所以它包含属性。每个属性都是一个名称和一个值

对象不是数组,但数组实际上是对象。数组可以有项,但也可以有命名属性

LinkedList
函数创建一个对象,该对象具有类似于数组的
push
pop
方法,但项目的存储方式与数组不同

(1) 是字符串数组

是的,没错。但是,由于Javascript中没有严格的类型,因此更好的描述应该是包含字符串的数组。数组不限于包含字符串,因为它创建时只包含字符串

(2) 是对象的数组

不,那不对。它是一个对象,所以它包含属性。每个属性都是一个名称和一个值

对象不是数组,但数组实际上是对象。数组可以有项,但也可以有命名属性

LinkedList
函数创建一个对象,该对象具有类似于数组的
push
pop
方法,但项目的存储方式不同于数组。

如上所述,(2)是一个具有属性的javascript对象,因此不包含标准的推送数组方法