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

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

 2009-09-11 00:00:00 来源:WEB开发网   
核心提示: 熟悉Java的话或许会对introduction函数有些疑问,Java程序员不会时时刻刻把this加上,JavaScript面向对象程序设计(3): 对象(4),除非哪天心血来潮,才会加上这个 this,也就是说,那个constructor属性是在new运算符的时候获得的,但是,如果你想在Jav

熟悉Java的话或许会对introduction函数有些疑问。Java程序员不会时时刻刻把this加上,除非哪天心血来潮,才会加上这个 this。但是,如果你想在JavaScript中偷懒,去掉this,结果只会是报错。这是怎么回事呢?简单来说,在这里的this关键字是必不可少的!这是JavaScript与其他语言的不同。具体为什么,会在以后的文章中说明,现在只是知道就好了——不要在这里偷懒哦~~

4. 更多属性的操作

现在对JavaScript对象属性的认识应该在这样一点上:JavaScript的对象就是一个二元组,或者说就是一个散列或哈希表。如果能明白这一点,就不会对下面的操作有所奇怪了:

var Person = {}; // 创建一个空对象
Person.name = "Tom"; // 添加一个属性name,并赋值为Tom
Person["age"] = 20; // 用另外的办法新增属性
Person.introduction = function () {
        alert("My name is " + this.name + ", my age is " + this.age);
};
Person.introduction();
for(var field in Person) { // 使用foreach循环列出对象中所有属性
        alert("field name: " + field + "; value: " + Person[field]);
}
delete Person.name; // 删除name属性
Person.introduction();
alert(name in Person); // 使用in操作符判断属性是否存在

5. 对象的constructor属性

在JavaScript中,每个对象都有一个constructor属性。这个constructor属性用来记录对象初始化时的构造函数名字。例如:

var date = new Date();
alert(date.constructor);
alert(date.constructor == "Date"); // false
alert(date.constructor == Date); // true

嗯,这个Date是JavaScript的内置对象。这里的代码看上去很平常。不过,如果你要使用自己写的对象,比如前面的Person,就会发现它的constructor对象怎么是Object?这里有两个问题:第一,我们并没有给Person constructor属性,它怎么会有的?第二,这个constructor属性怎么是object,而不是我们的Person呢?

对于第一个问题,很明显,是JavaScript给我们加上的。事实上,每个JavaScript对象都会有这样一个属性。那么,它的值又怎么是Object呢?这个问题,在我们说道new这个运算符的时候会给大家说明的。这里请大家注意,本文中的对象其实是指的单独的使用new之后得到的对象。也就是说,那个constructor属性是在new运算符的时候获得的。这就涉及到构造函数了——不过这不是本文的重点,以后再说吧~~ :-)

出处: http://devbean.blog.51cto.com/448512/163817

编缉推荐阅读以下文章

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

上一页  1 2 3 4 

Tags:JavaScript 面向 对象

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