JAVASCRIPT 面向对象程序设计.pdfVIP

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JavaScript 面向对象程序设计 (上) - 封装 来源:coolcode.cn.andot 发布时间:2008-05-12 阅读次数: 384 JavaScript 是一种非常灵活的面向对象程序设计语言,它与传统 的强类型的面向对象程序设计语言 (如 C++,Java,C# 等)有很 大不同,所以要实现如 C++、java、C# 当中的一些特性就需要换 一种思考方式来解决。今天主要讨论如何在 JavaScript 脚本中实 现数据的封装 (encapsulation)。 数据封装说的简单点就是把不希望调用者看见的内容隐藏起来。 它是面向对象程序设计的三要素之首,其它两个是继承和多态,关于 它们的内容在后面再讨论。 关于数据封装的实现,在 C++、Java、C# 等语言中是通过 public、private、static 等关键字实现的。在 JavaScript 则 采用了另外一种截然不同的形式。在讨论如何具体实现某种方式的数 据封装前,我们先说几个简单的,大家所熟知却又容易忽略的 JavaScript 的概念。 1 几个基本概念 1.1 变量定义 在 JavaScript 语言中,是通过 var 关键字来定义变量的。 但是如果我们直接给一个没有使用 var 定义的变量赋值,那么 这个变量就会成为全局变量。 - 1 - 一般情况下,我们应该避免使用没有用 var 定义的变量,主要 原因是它会影响程序的执行效率,因为存取全局变量速度比局部变量 要慢得多。 但是这种用法可以保证我们的变量一定是全局变量。 另外,为了保证速度,我们在使用全局变量时,可以通过 var 定 义一个局部变量,然后将全局变量赋予之,由此可以得到一个全局变 量的局部引用。 1.2 变量类型 没有定义的变量,类型为 undefined。 变量的值可以是函数。 函数在 JavaScript 中可以充当类的角色。 1.3 变量作用域 变量作用域是指变量生存周期的有效范围。 单纯用 { } 创建的块不能创建作用域。 with 将它包含的对象作用域添加到当前作用域链中,但 with 不创建新的作用域。with 块结束后,会将对象作用域从当前作用域 链中删除。 try-catch 中,catch 的错误对象只在 catch 块中有效,但 catch 块中定义的变量属于当前作用域。 if for for-in while do-while switch 其它如 、 、 、 、 、 等 - 2 - 控制语句创建的块不能创建作用域。 用 function 创建的函数,会创建一个新的作用域添加到当前 作用域中。 2 封装 下面我们就来讨论具体的封装。首先说一下大家最熟悉的几种封 装:私有实例成员、公有实例成员和公有静态成员。最后会讨论一下 大家所不熟悉的私有静态成员和静态类的封装办法。因为下面要讨论 的是面向对象编程,所有当函数作为类来定义和使用时,我们暂且将 其成为类。 2.1 私有实例成员 私有实例成员在 JavaScript 中实际上可以用函数内的局部变 量来实现,它相当于类的私有实例成员。例如: 1. class1 function() { 2. // private fields 3. var m_first 1; 4. var m_second 2; 5. // private methods 6. function method1() { 7. alert(m_first); - 3 - 8. } 9. var method2 function() { 10. alert(m_second); 11.

文档评论(0)

celkhn5460 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档