JavaScript 使用面向对象的技术创建高级 Web 应用程序

转载:

JavaScript
使用面向对象的技术创建高级 Web 应用程序
Ray Djajadinata

本文讨论:
  • JavaScript 是基于原型的语言
  • 用 JavaScript 进行面向对象的编程
  • JavaScript 编码技巧
  • JavaScript 的未来
本文使用了以下技术: JavaScript

原文地址:http://msdn.microsoft.com/zh-cn/magazine/cc163419.aspx#S1

 

目录:

JavaScript 对象是词典
JavaScript 函数是最棒的
构造函数而不是类
原型
静态属性和方法
闭包
模拟私有属性
从类继承
模拟命名空间
应当这样编写 JavaScript 代码吗?

 

JavaScript 对象是词典

在 C++ 或 C# 中,在谈论对象时,是指类或结构的实例。对象有不同的属性和方法,具体取决于将它们实例化的模板(即类)。而 JavaScript 对象却不是这样。在 JavaScript 中,对象只是一组名称/值对,就是说,将 JavaScript 对象视为包含字符串关键字的词典。我们可以使用熟悉的“.”(点)运算符或“[]”运算符,来获得和设置对象的属性,这是在处理词典时通常采用的方法。以下代码段

 

var userObject = new Objcet();
userObject.lastLoginTime = new Date();
alert(userObject.lastLoginTime);

 的功能与下面的代码功能完全相同:

var userObject = {}; // equivalent to new Object()
userObject['lastLoginTime']  = new Date();
alert(userObject['lastLoginTime']);

 我们还可以直接在userObject的定义中定义lastLoginTime属性,如下所示:

var userObject = {'lastLoginTime' : new Date()};
alert(userObject.lastLoginTime);

 

注意,它与C#3.0对象初始化值非常相似。而且,熟悉Python的人会发现在第二和第三个代码段中实例化 userObject 的方法与在 Python 中指定词典的方法完全相同。唯一的差异是 JavaScript 对象/词典只接受字符串关键字,而不是像 Python 词典那样接受可哈希化的对象。

 

这些示例还显示 JavaScript 对象比 C++ 或 C# 对象具有更大的可延展性。您不必预先声明属性 lastLoginTime — 如果 userObject 没有该名称的属性,该属性将被直接添加到 userObject。如果记住 JavaScript 对象是词典,您就不会对此感到吃惊了,毕竟,我们一直在向词典添加新关键字(和其各自的值)。

 

这样,我们就有了对象属性。对象方法呢?同样,JavaScript 与 C++/C# 不同。若要理解对象方法,首先需要仔细了解一下 JavaScript 函数。

 

下一节: JavaScript 函数是最棒的                                                                                               返回首页: Top

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值