精华内容
下载资源
问答
  • js 实现多态

    千次阅读 2014-07-11 12:24:58
    简单的多态也许大家会经常用到. 如 function add(x,y){  return x+y;...然而,下面是比较经典的js实现多态的方法,下面我把代码贴下    function dwn(s){  document.write(s+"");  }  

    js实现多态,在实际中是经常用到的,就简单的实现多态,比如:

    function add(x,y){

     return x+y;

    }

    add(10,30);

    add("a","b");


    然而,下面是比较经典的js实现多态的方法,下面我把代码贴下

     <script type="text/javascript">
       function dwn(s){
        document.write(s+"<br/>");
       }
       function Animal(){
        this.bite=function(){
        dwn("animal bite!");
        }
       }
       function Cat(){
        this.bite=function(){
         dwn("Cat bite!");
        }
       }
       
       Cat.prototype=new Animal(); ///inherit Animal
       
       function Dog(){
        this.bite=function(){
         dwn("Dog bite");
        }
        
       }   
       Dog.prototype=new Animal();  ///inherit Animal
       function AnimalBite(animal){
        if(animal instanceof Animal) ///instanceof bite Dog.bite() and Cat.bite()
        animal.bite();
       }
       
       var cat=new Cat();
       var dog=new Dog();
       AnimalBite(cat);
       AnimalBite(dog);
       
     </script>

    展开全文
  • 主要介绍了JavaScript实现多态和继承的封装操作,结合实例形式分析了javascript中多态与继承的实现及封装相关操作技巧,需要的朋友可以参考下
  • js实现多态

    千次阅读 2008-12-15 22:58:00
    简单的多态也许大家会经常用到.如function add(x,y){ return x+y;... 然而,下面是比较经典的js实现多态的方法,下面我把代码贴下 function dwn(s){ document.write(s+""); } function Animal(){ thi

     简单的多态也许大家会经常用到.

    function add(x,y){

     return x+y;

    }

     

    add(10,30);

    add("a","b");

     

    然而,下面是比较经典的js实现多态的方法,下面我把代码贴下

     <script type="text/javascript">
       function dwn(s){
        document.write(s+"<br/>");
       }
       function Animal(){
        this.bite=function(){
        dwn("animal bite!");
        }
       }
       function Cat(){
        this.bite=function(){
         dwn("Cat bite!");
        }
       }
      
       Cat.prototype=new Animal(); ///inherit Animal
      
       function Dog(){
        this.bite=function(){
         dwn("Dog bite");
        }
       
       }  
       Dog.prototype=new Animal();  ///inherit Animal
       function AnimalBite(animal){
        if(animal instanceof Animal) ///instanceof bite Dog.bite() and Cat.bite()
        animal.bite();
       }
      
       var cat=new Cat();
       var dog=new Dog();
       AnimalBite(cat);
       AnimalBite(dog);
      
     </script>

    展开全文
  • 1、this的使用 1)作为对象的方法调用,this指的对象本身 var obj={  a:1, getA:function(){ alert(this===obj);//输出:true alert(this.a);...2)作为普通函数调用,this指的是wind...

     1、this的使用

    1)作为对象的方法调用,this指的对象本身

    var obj={
      a:1,
       getA:function(){
             alert(this===obj);//输出:true
             alert(this.a); //输出:1
       }  
    }
    obj.getA();

     2)作为普通函数调用,this指的是window对象

    window.name='globalName';
    
    var myObject={
        name:'seven',
        getName:function(){
            return this.name;  
        }
    };
    
    var getName=myObject.getName;
    console.log(getName()); //输出globalName

     这里是变量getName引用myObject.getName方法。如果是myObject.getName(),会输出seven,这里是属于对象的属性调用。

    3)构造器调用,this指的是构造器返回的对象

     

    var MyClass=function(){
        this.name='seven';
    };
    
    var obj=new MyClass();
    alert(obj.name);

     

    如果显式的返回Object对象,最终返回这个对象,而不是this

     

    var MyClass=function(){
            this.name='seven';
            return {
                name:'anne'
            }
        };
    
        var obj=new MyClass();
        alert(obj.name);//输出anne

     

     

     

    如果返回的是非对象类型,如字符串,依然会输出seven.

    4)Function.prototype.call或Function.prototype.apply调用

    都用于用于指定函数内this对象的指向.

     

    call与apply区别:

    a)apply的第一个参数指定this对象的指向,第二个参数为一个带下标的集合,可以是数组也可以是类数组。

     

    var func=function(a,b,c){
       alert([a,b,c]);//输出[1,2,3]
    };
    func.applay(null,[1,2,3]); //null指向默认的宿主对象,浏览器中为window.

     

     

     

    b)call的一个参数和apply一样指定this对象,后面多个参数。

     

    var func=function(a,b,c){
       alert([a,b,c]);//输出[1,2,3]
    };
    func.call(null,1,2,3); //null指向默认的宿主对象,浏览器中为window.

     

     

     

     

    解决上面用普通函数调用this丢失的问题

    window.name='globalName';
    
        var myObject={
            name:'seven',
            getName:(function(){
                return this.name;
            })
        };
    
        var getName=myObject.getName;
        console.log(getName.apply(myObject)); //输出seven

     

    转载于:https://www.cnblogs.com/GallopingSnail/p/5869315.html

    展开全文
  • 还是以鸭子唱歌为例 1、prototype 给对象添加方法或属性 <script> var makeSound=function (animal) { animal.sound(); } var Duck=function () { } Duck.p...

    还是以鸭子唱歌为例

    1、prototype 给对象添加方法或属性

      <script>
            var makeSound=function (animal) {
                animal.sound();
            }
            var Duck=function () {
            }
            Duck.prototype.sound=function () {
                console.log("嘎嘎嘎");
            }
            var Chichen=function () {
            }
            Chichen.prototype.sound=function () {
                console.log("咯咯咯");
            }
            makeSound(new Chichen());
            makeSound(new Duck())
    
        </script>

    给定义的Duck和 Chicken添加sound的方法

    2、typeof和instanceof用法

    只有具有sound方法的动物才能唱歌

    1)typeof

    用来检测给定变量的数据类型,可能的返回值:

    1. 'undefined' --- 这个值未定义;

    2. 'boolean'    --- 这个值是布尔值;

    3. 'string'        --- 这个值是字符串;

    4. 'number'     --- 这个值是数值;

    5. 'object'       --- 这个值是对象或null;

    6. 'function'    --- 这个值是函数。

    var makeSound=function (animal) {
                if(typeof animal.sound==='function'){
                    animal.sound();
                }
    }

    2)instanceof用来判断对象是否某另一个对象的实力,返回值true or false

     var makeSound=function (animal) {
                if(animal.sound instanceof Function){
                    animal.sound();
                }
     }
     
     

     

    转载于:https://www.cnblogs.com/GallopingSnail/p/5863356.html

    展开全文
  • js实现多态

    千次阅读 2014-08-22 07:27:17
    多态实现可以采用和继承类似的方法。首先定义一个抽象类,其中调用一些虚方法,虚方法在抽象类中没用定义,而是通过其具体的实现类来实现。 如下面的例子: Object.extend=function(destination,source){ for...
  • 多态实现可以采用和继承类似的方法。首先定义一个抽象类,其中调用一些虚方法,虚方法在抽象类中没用定义,而是通过其具体的实现类来实现。 如下面的例子: Object.extend=function(destination,source){ for...
  • javascript实现多态的简单方法 安装 使用 npm 安装: npm install --save popo 用凉亭安装: bower install --save popo 用法 参数编号只有可能的重载函数 Node.js var popo = require('popo'); var ...
  • 这里我们来讨论在 JS 面向对象中怎么样去实现多态的。因为在 JS 中名称函数不允许重复,否则会发生覆盖 。所以 JS实现多态,通常有参数不同和类型不同。 了解 arguments ? 在 ES5 的时候,JS 函数内部存在一...
  • js模拟多态

    2018-10-18 11:13:41
    我们知道js是弱类型语言,但是js可以...js实现多态 var makeSound = function(animal) { animal.sound(); } var Duck = function(){} Duck.prototype.sound = function() { console.log('嘎嘎嘎') } var Ch...
  • 这个是从一个大佬的博客学来的,看了看例子不太难,可能了解的不够透彻。...多态 大佬例子: function add() { var arg = arguments, len = arguments.length switch (len) { case 0: retur...
  • JS和WebService实现多态

    2009-07-27 13:53:00
    我们知道面向对象就离不开面向对象的三大特性: 封装、继承、多态,那么怎么也用JS实现面向对象的编程呢。那我现在就拿一个简单的小例子来说明一下多态实现。 我们先建一个抽象的类,然后呢在用几个类来继承这个...
  • js 多态实现

    2017-06-08 18:18:05
    js多态实现,并且newObj()函数的传参,继承以最后的对象的属性和方法进行覆盖 (function(){ //newObj// 可传入构造函数或者json对象, function forObj(o1){ function for_(object1,object2){ for(var j in ...
  • extjs4的继承机制被重构,还引入了python的Mixins概念模拟多态继承,与qooxdoo很相像,呵呵,到底是谁抄谁的呢
  • JS实现继承多态

    2019-10-07 03:16:38
    多态 ClassAB = new ClassA("ClassA" ); ClassAB.Show( "hello" ); ClassAB = new ClassB("ClassB" ); ClassAB.Show( "hello");   转载于:https://www.cnblogs.com/BABLOVE/p/3307846.html
  • javascript · 多态

    2016-11-09 17:35:25
    那么来分享一下js多态的写法。 分享之前首先要明白一个保留字 arguments, 它是js中一个很有用的变量 上干货:function a() { //这里括号里可以不写内容 var ar = arguments; if (ar.length == 0) retu.....
  • javascript多态

    2017-09-17 17:56:37
    javascript每日必学之多态,介绍了有关多态的相关内容,感兴趣的小伙伴们可以参考一下
  • 解释 JS 封装多态

    2021-02-24 16:46:15
    目录里解释 JS 封装多态谈一谈进程和线程事件轮询机制 解释 JS 封装多态 封装: 封装的目的是将信息隐藏,一般来说封装包括封装数据、封装实现。 封装数据:依赖作用域来实现封装数据。 封装实现:封装实现即隐藏...
  • javascript多态

    2017-01-09 19:47:49
    多态,对同一个方法的多种调用方式,在javascript中,通过对传入的参数做判断以实现多种调用方式//多态 function add(){ var arg=arguments, len=arg.length; switch(len){ case 0: return 10; case 1: retur

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,755
精华内容 9,102
关键字:

js如何实现多态