我正在阅读Stackoverflow上的How can I get query string values in JavaScript?,这段代码从第一个回复中让我想知道为什么'vars.push()'是这样使用的?为什么使用array.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;
}
这一点,但不是:
var vars=[];
...
vars.push(hash[0]);
vars[hash[0]] = hash[1];
我改写了像代码:
var vars={};
...
vars[hash[0]] = hash[1];
和它的作品。现在的问题是:
- 为什么有人会使用数组来处理那种回复?
- 以及为什么有人会使用
ARR.push(KEY)
,然后使用ARR[KEY]=VAL
格式?
任何有指针的语言都可以做OOP。所以没有OOP语言,因为OOP是一种编程技术,而不是语言范例。 C中没有“对象”,但是你可以用C做OOP。javascript是一种程序语言。 Scheme或LISP不是例如。 – mpm 2012-04-07 09:10:20