javasript 面向对象

JavaScript. 是一种解释型的、基于对象的脚本语言。尽管与 C++、C# 这样成熟的面向对象的语言相比,JavaScript的功能要弱一些,但对于它的预期用途而言,JavaScript的功能已经足够大了。但是由于各种各样的原因,我们在实际进行开发的过程中往往忽略了他基于对象的这一特性,以至JavaScript编写的程序显的杂乱无章。这样不仅不易于观看,更不易于修改。今天就让我们来看看JavaScript基于对象的这一特性。
类:
function DelegateObject(){
    
var obj = new Object();
    obj.value 
= "";
    obj.FormatString 
= null;
    obj.toString 
= function _toString(){
        
if(obj.FormatString != null)
            
return this.FormatString(this.Value);
        
else
            
return this.Value;
    }
   
    
return obj;
}

var obj = new DelegateObject();

委托:
function DelegateObject(){
    
var obj = new Object();
    obj.value 
= "";
    obj.FormatString 
= null;
    obj.toString 
= function _toString(){
        
if(obj.FormatString != null)
            
return this.FormatString(this.Value);
        
else
            
return this.Value;
    }
   
    
return obj;
}


function ConvertToString(value){
    
return "Result:" + value;
}

var obj = new DelegateObject();
obj.Value 
= "Hello World!";
obj.FormatString 
= ConvertToString;
document.write(obj.toString());

重写:
function DelegateObject(){
    
var obj = new Object();
    obj.toString 
= function _toString(){
        
if(obj.FormatString != null)
            
return this.FormatString(this.Value);
        
else
            
return this.Value;
    }
   
    
return obj;
}


继承:
function DelegateObject(){
    
var obj = new Object();
    obj.value 
= "";
    obj.FormatString 
= null;
    obj.toString 
= function _toString(){
        
if(obj.FormatString != null)
            
return this.FormatString(this.Value);
        
else
            
return this.Value;
    }
   
    
return obj;
}

function Class2(){
    
var obj = new DelegateObject();
    
return obj;
}

function ConvertTOString(value){
    
return "Result:" + value;
}


var obj = new Class2();
obj.Value  
= "Hello World!";
obj.FormatString 
= ConvertTOString;
document.write(obj.toString());

事件:
function EventHandler(){
    
var eventobj = new Object();
    eventobj._eventHandler 
= null;
    eventobj.Activate 
= function _activate(){
        
if(eventobj._eventHandler != null)
            eventobj._eventHandler();
    }

    eventobj.Add 
= function _add(eventHandler){
        eventobj._eventHandler 
= EventHandler;
    }

    eventobj.Remove 
= function _remove(){
        eventobj._eventHandler 
= null;
    }

    
return eventobj;
}


function mouseClick(){
    alert(
"Hello World!");
}


var obj = new EventHandler();
obj.Add(mouseClick());
obj.Activate();


枚举:
function _StatusList(){
    
var object = new Object();
    object.正常
= "Normal";
    object.删除
= "Delete";
    object.审核通过
= "Auditing";
    object.驳回 
= "OverRule";
    
return object;
}

Object.prototype.StatusList 
= new _StatusList();
function TObject(){
    
var obj = new Object();
    obj.Type 
= "YiZhu";
    obj.Status 
= Object.StatusList.审核通过;
}

alert(obj.Status);

转载于:https://www.cnblogs.com/skyangell/archive/2008/03/08/1096416.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300471.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 手机 上传图片_在手机端使用拍照功能上传图片的功能的解决文案

主要依赖了一个compress.js的文件,文件内容如下:/** Tencent is pleased to support the open source community by making WeUI.js available.** Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.** Licensed under the MIT License …

砸4亿美元,GE豪赌的全球最大风力发电机到底多大?

全世界只有3.14 % 的人关注了青少年数学之旅叶片长达107米,转子直径为220米,轮毂高度为135米,叶尖最大高度为260米,几乎是纽约自由女神像从地面到火炬尖端高度的三倍。这就是巨头GE豪赌的全球最大风力发电机:Haliade-X…

会计部分关键术语1

accounting equation 会计等式资产等于负债加所有者权益之和。articulation 勾稽关系存在于以相同的基础性交易为基础编制的财务报表之间的密切关系。assets 资产一个实体所拥有的经济资源。balance sheet 资产负债表通过汇总一个企业在某一时点的资产、负债和所有者权益反映企…

皮肤

又换皮肤了,各位感觉怎么样? 转载于:https://www.cnblogs.com/kay/archive/2008/03/11/1100171.html

VisualStudio配置中文提示

开篇语IntelliSense 是一种代码完成辅助工具,可以在不同的集成开发环境 (IDE) 中使用,例如 Visual Studio。默认情况下,在开发 .NET 项目时,SDK 仅包含英语版本的 IntelliSense 文件。虽然推荐使用英文,可以熟悉和学习…

丢失日志文件的风险与对策

实验背景:在备份与恢复数据库时,偶尔使用分离/附加的方法。如果在附加时丢失了或者删除了日志文件(LDF),可能会有哪些风险呢?下面通过实验来验证。一、搭建环境1. 创建数据库CREATE DATABASE [db01] ON PR…

java runtime 返回值_Java Runtime.exec()注意事项 | 学步园

转载自:http://blog.csdn.net/flying881114/archive/2011/03/23/6272472.aspx0. Runtime.exec()用来执行外部程序或命令1. Runtime.exec() 有四种调用方法* public Process exec(String command);* public Process exec(String [] cmdArray);* public Process exec(…

SQL中CONVERT转化函数的用法[个人推荐]

转载:http://piaoye.cnblogs.com/archive/2005/09/09/233363.htmlCONVERT的使用方法:格式:CONVERT(data_type,expression[,style]) 说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到. 例子:SELECT CONVERT(va…

A和G cup的差距究竟有多大?| 今日趣图

全世界只有3.14 % 的人关注了青少年数学之旅太阳其实一直在狂奔太阳带着地球等行星以250km/s的速度在绕着银河系公转每转一圈需要2.5亿年图源见水印A罩杯和G罩杯的差距有多大錶情包运动鞋后面的这个东西原来是用来晒鞋子的抖音然一往一捆蛏子上撒盐会发生什么?残酷的…

计算机软件资格考试网站

计算机软件资格考试网站 软考在线http://www.netandnet.net/ 是一个专为准备参加软考人员服务的计算机专业水平考试网站,内容括最新软考新闻,软考文章,软考下载,软考书店,软考论坛等. 系统分析之窗http://www.sawin.com.cn/ Sawin作为系统分析、软件工程的技术推广…

五个 .NET 性能小贴士

原文:bit.ly/3wSpO4o作者:Nikita Starichenko翻译:精致码农大家好!今天我想和大家分享几个 .NET 的性能小贴士与基准测试。我的系统环境:BenchmarkDotNetv0.13.0, OSWindows 10.0.19042.985Intel Core i7-9750H CPU 2.…

java程序弊端_面向对象编程的弊端是什么?

信仰万物皆对象,习惯性Thinking in OOP的话,有可能会限制住自己解决实际问题的思路。曾经面试过某java候选人,我出了道其实很简单的算法题。结果候选人上来就去定义对象、属性、方法、接口等等,企图去搭一个面向对象的『框架』来解…

Javascript函数调用的四种模式

Javascript一共有四种调用模式:方法调用模式、函数调用模式、构造器调用模式以及apply调用模式。调用模式不同,对应的隐藏参数this值也会不同。 函数作为对象的属性时,称为方法。此时函数(即方法)中的this对应是该对象…

【推荐】BREW中 - 显示和图像

a. BREW 支持哪些图像格式? 适用版本: 1.0, 1.1, 2.0 BREW 支持颜色深度达到运行设备上提供的值的任何 BMP 文件。 BREW 目前尚不支持 GIF 和 JPEG 图像。 有些设备可以支持 GIF 和 JPEG 图像,请参阅设备数据表来查看 OEM 是否提供了支持以上…

我背着女朋友,用 Python 偷偷抓取了她的行踪

全世界只有3.14 %的人关注了青少年数学之旅1目 标 场 景有时候女朋友一个人在外面玩耍,问她在哪个地方,就是不告诉我。但是,你又很想知道女朋友的「位置」,这该如何是好?其实你可以这样套路女朋友,假装自己…

ASP.NET Core 中的规约模式(Specification Pattern )——增强泛型仓储模式

原文链接:https://codewithmukesh.com/blog/specification-pattern-in-aspnet-core/在本文中,我们将讨论在 ASP.NET Core 应用程序中实现规约模式以及它如何增强现有的泛型仓储模式。我们将从头开始构建具有泛型仓储模式、Entity Framework Core的 ASP.N…

面向过程的ado建造者模式

{*******************************************************}{ }{ ADO数据工厂 }{ }{ 版权所有 (C) 2008 咏…

Javascript:this用法

#Javascript:this用法整理pingan 于 星期三, 18/12/2013 - 22:32 提交 常用Javascript的人都知道,[this这个关键字在一个函式内究竟指向谁]的这个问题很令人头大,本人在这裡整理了一下Javascript中this的指向的五种不同…

动画演示男性结扎手术 | 今日趣图

全世界只有3.14 % 的人关注了青少年数学之旅流鼻涕了怎么办?医学教育徐琦招聘程序员啦知识萌死大丧失;图熊本科技把下列句子补充完整图三好学生李宇幼年的大象喝水并不会使用鼻子而是趴在水里直接用嘴大喝一顿它们9个月之后才会懂得用鼻子喝水科普斯基请…

MYSQL 只能回环口链接_loopback回环口详解

在配置OSPF路由协议的时候配置回环(loopback)接口是很重要的1件事.Cisco建议你配置OSPF的时候顺便配置回环接口.所谓回环接口,是逻辑接口而非物理接口,即不是你触摸的到的router上的真正的接口.作用是作为诊断OSPF而用.如果router的某一个接口由于故障down掉而不可用了,此时你怎…