为什么使用array.push()来创建一个对象?

Ale*_*ack 7 javascript

我正在阅读如何在JavaScript中获取查询字符串值?在Stackoverflow和第一个回复的这段代码让我想知道为什么'vars.push()'像这样使用?

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
Run Code Online (Sandbox Code Playgroud)

但不是这样的:

var vars=[];
...
vars.push(hash[0]);
vars[hash[0]] = hash[1];
Run Code Online (Sandbox Code Playgroud)

我重写了代码,如:

var vars={};
...
vars[hash[0]] = hash[1];
Run Code Online (Sandbox Code Playgroud)

它的工作原理.现在的问题是:

  • 为什么会有人使用数组进行回复?
  • 为什么有人会使用ARR.push(KEY)然后使用ARR[KEY]=VAL格式?

und*_*ned 1

Push() 将其参数按顺序附加到数组的末尾。它直接修改数组,而不是创建新数组。Push() 及其配套方法 pop() 使用数组提供先进后出堆栈的功能。

  • 任何具有指针的语言都可以进行 OOP。所以不存在 OOP 语言,因为 OOP 是一种编程技术,而不是一种语言范式。C 中没有“对象”,但您可以在 C 中进行 OOP。javascript 是一种过程语言。例如,Scheme 或 LISP 就不是这样。 (2认同)