WEB开发网
开发学院网页设计JavaScript JavaScript面向对象程序设计(3): 对象 阅读

JavaScript面向对象程序设计(3): 对象

 2009-09-11 00:00:00 来源:WEB开发网   
核心提示: 在JavaScript中,对象就是“键-值”对的形式,JavaScript面向对象程序设计(3): 对象(3),具体来说是"string-as-key": object-as-value的形式,也就是说,后面的两个显得比较特别,第三句看上去像什么?对了

在JavaScript中,对象就是“键-值”对的形式,具体来说是"string-as-key": object-as-value的形式。也就是说,这个键必须是string类型的,而值可以是任何类型的。那么,方法呢?其实,JavaScript中的function也是一个类型,这个在后面会有描述的,这里仅仅先知道就可以了。这种数学上成为二元组的样式很常见,数组就是这样的,只不过数组的键必须是int。同样,JavaScript的对象也是一个特殊的二元组,只不过键是string类型的。这是不是就像是一种散列?或者说是哈希表?就是这个样子!

如果说你觉得每个属性名都要加一个引号觉得很别扭,那么你大可不加!像下面的语句,JavaScript完全认为你的正确的:

var Person = {
        name: "Tom",
        age: 20,
        introduction: function() {
                alert("My name is " + this.name + ", my age is " + this.age);
        }
}
Person.introduction();

我比较习惯于这种写法,看上去和Java等语言差不多。

3. 属性的使用

JavaScript中属性的使用或许比较特别。看下面试图使用Person的name属性的四个语句,看上去都差不多,实际上也确实如此:

alert(Person.name);
// alert(Person."name");
alert(Person["name"]);
alert(Person[name]);

除去注释掉的一句,其他的三个语句都能够通过解释(由于JavaScript是解释型语言,不是编译型的,因此这里不说是编译),但是只有1、 3句能够取出name属性!第一句和Java没有什么区别,后面的两个显得比较特别,第三句看上去像什么?对了!数组元素的访问!这进一步验证了 JavaScript中的数组和对象“本是同根生”。那么,第四句呢?当然是返回undefined!因为数组下标必须是数字或者字符串嘛!

编缉推荐阅读以下文章

  • JavaScript面向对象程序设计(8): 优雅的封装还是执行的效率?
  • JavaScript面向对象程序设计(7): 闭包
  • JavaScript面向对象程序设计(6): 封装
  • JavaScript面向对象程序设计(5): 类
  • JavaScript面向对象程序设计(4): 函数
  • JavaScript面向对象程序设计(2): 数组
  • JavaScript面向对象程序设计(1): 前言
  • 理解JavaScript面向对象的思路
  • Javascript面向对象详解(第一部分)
  • JavaScript面向对象的支持(下)

上一页  1 2 3 4  下一页

Tags:JavaScript 面向 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接