`
talentnba
  • 浏览: 91311 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

进一步理解javascript对象、数组和哈希表

阅读更多

在javascript中,对象实际上就是一个哈希表,比如下面这个user对象:

function user(n, a)
{
    this.name = n;
    this.age = a;
    this.toString = function() {
        return "Name:" + this.name + ", Age:" + this.age;
    }
}
var u = new user("tom", 18);
for (var k in u) {
    alert('key: ' + k + ', value:' + u[k]);
}

稍作改动,使用Array对象来代替对象:

var user = new Array();
user["name"]="tom";
user["age"]=18;
user["toString"]=function(){
	return "Name:" + this.name + ", Age:" + this.age;
}
alert(user.toString());

更简单的写法:

var u = {
	"name":"tom",
	"age":18
}
u.toString = function(){return 'Name:' + this.name + ', Age:' + this.age;};
alert(u.toString());

由以上这些代码可以看出:

  • 所有的javascript对象,包括Array对象在内实际上就是一个哈希表,属性名称就是哈希表的key,而属性的值就是哈希表的值。
  • Array对象与通常意义的数组对象并不相关,通常的数组仅能通过下标来定位,而javascript中的Array却可以像哈希表一个通过key来定位集合中的对象。
  • 可以将一个function直接作为值赋给对象的“哈希表”。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics