JavaScript的对象观

众所周知,目前的JavaScript实现了ECMA262规范,是基于对象的。未来的JavaScript2.0具说是面向对象同时向后兼容亦可使用基于对象的手法,但在还未看到正式运行版前就不讨论了。
    基于对象。什么是基于对象呢?关于这个问题,初学者通常会与面向对象相对混淆。那到底什么是基于对象呢?要认定(纯粹个人看法)基于对象不等于面向对象;基于对象的层次是高于面向对象的;基于对象是使用已经存在的对象或扩展已经存在的对象,而面向对象是设计或抽象出一个新的对象来,同时该对象具有继承、多态、封装等特点。从另一个角度也可以认为基于对象是站在面向对象的肩膀上的。
    既然基于对象是站在面向对象的肩膀上的,那么基于对象语言自然拥有面向对象语言的特征,如JavaScript(本文围绕它来说,其他还有ActionScript等)。那JavaScript是如何完成面向对象的呢?呵呵,这就是刚才为什么说那么多废话的原因了。本文的宗旨就是将阐述如何在JavaScript 中使用面向对象。
    在《征服RIA——基于JavaScript的Web客户端开发》一书的第二部分《第二部分 JavaScript高级篇》简单阐述了JavaScript的对象特性。没错!正由于这些特性才造就了如今的JavaScript(忘记在那里见过这样一种说法——JavaScript的设计者似乎都没发现JavaScript有这么多特性)。
    对象的创建、使用、继承等方式在这里就不啰嗦了,大家可以参考《征服RIA——基于JavaScript的Web客户端开发》的高级篇,当然了也欢迎拍砖呀。(本人经常上的blog——http://hi.baidu.com/nathena/)
    在面向对象编程的世界里往往离不开设计模式。自然现在我们谈到了面向对象,自然也引入了设计模式。哈哈,看到这里你是否觉得有种上当得感觉呢?对了说了好多好多,只是想说我要介绍JavaScript中的设计模式。恩,不废话。现在简单的介绍几种
    singletion(单例)
    可查看http://hi.baidu.com/nathena/blog/item/714948dd65b25e325882dd0d.html
var Singletion = {
constructor:function()
{
//保证实例的唯一性
//注意不能使用this
return Singletion;
},

basePay:4500,
allowance:200,
duty:2000,
other:3000,
affixation:1000
}

var a = Singletion;
var c = new (Singletion.constructor)();
alert(a===c)
    适配器(Adapter)
    可查看http://hi.baidu.com/nathena/blog/item/12b9882c7887a3eb8a1399af.html
funtion Stack()
    {
        //适配JS数组接口
        var d = [];
        //实际需要为仅提供peek、pop、push、search、isEmpty
        this.peek =function()
        {
            return d[0];
        }

this.pop = function()
        {
            return d.pop();
        }

this.search=function( o)
        {
            for(var i=0;i<d.length;i++)
            {
                if( d[i] == o )
                    return i;
            }
        }
        this.isEmpty = function()
        {
            return d.length==0?true:false;
        }
    }
    composite组合模式
var Win = function()
{
    
}

var Wall = function()
{
}

var Door = function()
{
}
var Room = function()
{
    this.win = new Win();
    this.Wall = new Wall();
    this.Door = new Door();
}
And so on ……………..
更多可以参看
http://hi.baidu.com/nathena/blog/category/web%C7%B0%B6%CB%BC%BC%CA%F5
可拍砖,欢迎拍砖!!!

JavaScript的对象观相关推荐

  1. JavaScript 复制对象与Object.assign方法无法实现深复制

    在JavaScript这门语言中,数据类型分为两大类:基本数据类型和复杂数据类型.基本数据类型包括Number.Boolean.String.Null.String.Symbol(ES6 新增),而复 ...

  2. javascript 遍历对象

    javascript 遍历对象 <!DOCTYPE html> <html lang="en"><head><meta charset=& ...

  3. javascript定义对象写法(个人整理)

    javascript定义对象的几种简单方法 1.构造函数方式,全部属性及对象的方法都放在构造方法里面定义 优点:动态的传递参数 缺点:每创建一个对象就会创建相同的方法函数对象,占用大量内存 funct ...

  4. javascript笔记:深入分析javascript里对象的创建(上)续篇

    今天回来一看我的博客居然有这么多人推荐真是开心极了,看来大家对我的研究有了认可,写博客的动力越来越大了,而且我发现写javascript在博客园里比较受欢迎,写java的受众似乎少多了,可能博客园里j ...

  5. JavaScript Date 对象

    JavaScript Date 对象 JavaScript Date 对象 http://www.w3school.com.cn/jsref/jsref_obj_date.asp 日期处理 Date ...

  6. JavaScript Object对象

    原文:JavaScript Object对象 Object对象 1. 介绍 Object对象,是所有JavaScript对象的超类(基类).Object.prototype(Obecjt的原型)定义了 ...

  7. JavaScript 自定义对象

    原文:JavaScript 自定义对象 在Js中,除了Array.Date.Number等内置对象外,开发者可以通过Js代码创建自己的对象. 目录 1. 对象特性:描述对象的特性 2. 创建对象方式: ...

  8. JavaScript系列-----对象基于哈希存储(Key,Value之Key篇) (1)

    1.Hash表的结构 首先,允许我们花一点时间来简单介绍hash表. 1.什么是hash表 hash表是一种二维结构,管理着一对对<Key,Value>这样的键值对,Hash表的结构如下图 ...

  9. javascript BOM对象详解

    javascript BOM对象详解 目标:本章节将分为9点详细介绍有关BOM对象的知识点 1.什么是BOM 2.BOM的构成 3.顶级对象window 4.window对象常见事件(页面加载事件和体 ...

  10. javascript 数组对象中的迭代方法

    /* javascript 数组对象中的迭代方法 * ECMAScript5为数组定义了5个迭代方法.每个方法都接受两个参数,第一个是进行迭代的函数,第二个是该函数的作用域对象[可选]. * 进行迭代 ...

最新文章

  1. Exception in thread http-bio-80exec-1 java.lang.OutOfMemoryError: PermGen s解决方案
  2. 暗杀TIME-WAIT
  3. C++五子棋(七)——main函数以及项目总结
  4. java 中组合与复用_可复用性和组合
  5. Raw Socket编程
  6. commons-fileupload、smartUpload和commons-net-ftp
  7. 多线程和线程池的基本知识总结
  8. 华为鸿蒙系统5G有什么联系,【手机|站在5G时代的路口,鸿蒙将带给我们什么?】路口|华为|鸿蒙|其他|系统|硬件_科技资讯_联盟·玩科技...
  9. 项目业务工作笔记001---发改委职责
  10. linux引导分区被格式化修复,/boot分区、fstab文件、/bin/mount一次性被误除修复方法...
  11. WebDriver API学习记录
  12. Oracle 10g升级之--PSU 升级(续)
  13. k8s nodeSelector和affinity
  14. Flocks,Herds and Schools: A Distributed Behavioral Model
  15. MAC读写NTFS移动硬盘的解决办法
  16. Linux 中的压缩命令
  17. Email-FTP-RTSP协议实践研究
  18. mac版python怎么运行_mac 怎么运行python
  19. 《物流与供应链管理》读书笔记
  20. 【教程】Unity 与 Simence PLC 联动通讯

热门文章

  1. php面向对象、语法【访问成员的情形:外和方法内调用对象的关键字this】、构造函数的场景和析构函数的场景...
  2. java开发异常Exception集锦
  3. springBoot springSecurty: x-frame-options deny禁止iframe调用
  4. JavaScript中值类型与引用类型
  5. vue.js开发环境部署
  6. Python全栈之路系列----之-----守护进程\进程锁\队列\生产者消费者模式\数据共享\进程池(同步,异步)\回调函数\concurrent.futures模块...
  7. Java_GUI创建单机版QQ聊天小程序并实现简单的小功能(附所有源码)
  8. 重装win 修复ubuntu引导
  9. Linq 学习笔记(一)
  10. openmv探索_1_helloworld