你的位置:首页 > 软件开发 > ajax > Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface

Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface

发布时间:2008-10-23 21:49:00
在Javascript中并没有空间、类、接口这些概念,Atlas对这些东西实现封装了,增强了JavaScript面向对象方面的能力,本文看一下如何使用接口。 主要内容1.概述2.完整示例 一.概述在Javascript中并没有空间、类、接口这些概念,Atlas对这些东西进行了封装,增强了JavaScript面向对象方面的能力,本文看一下如何使用接口,使用如下的方法:registerInte

Javascript中并没有空间、类、接口这些概念,Atlas对这些东西实现封装了,增强了JavaScript面向对象方面的能力,本文看一下如何使用接口。

 

主要内容

1.概述

2.完整示例

 

一.概述

Javascript中并没有空间、类、接口这些概念,Atlas对这些东西进行了封装,增强了JavaScript面向对象方面的能力,本文看一下如何使用接口,使用如下的方法:

registerInterface:注册一个接口

registerAbstractClass:注册抽象的基类

使用abstractMethod指定接口中的方法

二.完整示例

看一下Atlas官方网站提供的例子,新建Atlas Web Site,添加一个Inheritance.js的JS文件,其中定义了一个Animal基类和IPet接口,Dog和Cat分别去实现接口,而Tiger类没有实现:

Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface// JScript FileAtlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceType.registerNamespace("Demo.Animals");Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.IPet = function() Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    this.returnFriendlyName = Function.abstractMethod;Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface}Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.IPet.registerInterface('Demo.Animals.IPet');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Animal = function(name) Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    var _name = name;Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    this.returnName = function() Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        return _name;Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    }Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface}Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Animal.registerAbstractClass('Demo.Animals.Animal');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Animal.prototype.toStringCustom = function() Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    return this.returnName();Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface}Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Animal.prototype.speak = Function.abstractMethod;Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Pet = function(name, friendlyName) Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    Demo.Animals.Pet.initializeBase(this, [name]);Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    var _friendlyName = friendlyName;Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    this.returnFriendlyName = function() Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        return _friendlyName;Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    }Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface}Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Pet.registerAbstractClass('Demo.Animals.Pet', Demo.Animals.Animal, Demo.Animals.IPet);Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    Demo.Animals.Cat.initializeBase(this, ['Cat', friendlyName]);Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface}Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Cat.registerClass('Demo.Animals.Cat', Demo.Animals.Pet);Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Cat.prototype.speak = function() Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    alert('meow');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface}Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Cat.prototype.toStringCustom = function() Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    return 'Pet ' + Demo.Animals.Cat.callBaseMethod(this, 'toStringCustom');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface}Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Felix = function() Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    Demo.Animals.Felix.initializeBase(this, ['Felix']);Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface}Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Felix.registerClass('Demo.Animals.Felix', Demo.Animals.Cat);Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Felix.prototype.toStringCustom = function() Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    return Demo.Animals.Felix.callBaseMethod(this, 'toStringCustom') + ' Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface its Felix!';Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface}Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Dog = function(friendlyName) Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    Demo.Animals.Dog.initializeBase(this, ['Dog', friendlyName]);Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface}Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Dog.registerClass('Demo.Animals.Dog', Demo.Animals.Pet);Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Dog.prototype.speak = function() Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    alert('woof');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface}Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Tiger = function() Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    Demo.Animals.Tiger.initializeBase(this, ['Tiger']);Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface}Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Tiger.registerClass('Demo.Animals.Tiger', Demo.Animals.Animal);Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceDemo.Animals.Tiger.prototype.speak = function() Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    alert('grrr');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface}

ASPX页面中引入该JS文件:

Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface<script type="text/javascript" src='/images/loading.gif' data-original="Interface.js"></script>

编写脚本,做一些简单的测试:

Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface<script type="text/javascript" language="JavaScript">Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    function OnTestNewClick() Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        var cat = new Demo.Animals.Cat('Kitty');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        alert(cat.returnName());Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        cat.speak();Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        return false;Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    }Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    function OnTestImplementsClick() Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        var cat = new Demo.Animals.Cat('Kitty');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        if (Demo.Animals.IPet.isImplementedBy(cat)) Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface            alert('Cat implements IPet');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        }Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        else Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface            alert('Cat does not implement IPet');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        }Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        var tiger = new Demo.Animals.Tiger();Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        if (Demo.Animals.IPet.isImplementedBy(tiger)) Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface            alert('Tiger implements IPet');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        }Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        else Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface            alert('Tiger does not implement IPet');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        }Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        return false;Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    }Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    function OnTestInterfaceMethodClick() Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        var cat = new Demo.Animals.Cat('Kitty');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        ProcessAnimal(cat);Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        var tiger = new Demo.Animals.Tiger();Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        ProcessAnimal(tiger);Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        var dog = new Demo.Animals.Dog('Joe');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        ProcessAnimal(dog);Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        var g = new Demo.Animals.Felix();Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        ProcessAnimal(g);Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        return false;Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    }Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface    function ProcessAnimal(animal) Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        alert('Current animal ' + animal.returnName());Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        alert(animal.toStringCustom());Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        if (Demo.Animals.IPet.isImplementedBy(animal)) Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface            alert(animal.returnName() + ' implements IPet; friendlyName: ' + animal.returnFriendlyName());Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        }Atlas学习手记(29):JavaScript面向对象的扩展(三):接口InterfaceAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        if (Demo.Animals.Felix.isInstanceOfType(animal)) Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface{Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface            alert('No ordinary catAtlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface its Felix!');Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface        }Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface</script>

关于接口的介绍就到这里了。 

完整示例下载:http://files.cnblogs.com/Terrylee/AtlasInterfaceDemo.rar

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:Atlas学习手记(29):JavaScript面向对象的扩展(三):接口Interface

关键词:JavaScript

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录