• js方法和prototype


    JS中的方法可以分为三类

    1、对象方法

    2、类方法

    3、原型方法

    例:

    function People(name)
    {
      this.name=name;
      //对象方法
      this.Introduce=function(){
        alert("My name is "+this.name);
      }
    }
    //类方法
    People.Run=function(){
      alert("I can run");
    }
    //原型方法
    People.prototype.IntroduceChinese=function(){
      alert("我的名字是"+this.name);
    }
    
    //测试
    
    var p1=new People("Windking");
    
    p1.Introduce();
    
    People.Run();
    
    p1.IntroduceChinese();

    javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。

    A.prototype = new B();

    理解prototype不应把它和继承混淆。A的prototype为B的一个实例,可以理解A将B中的方法和属性全部克隆了一遍。A能使用B的方法和属性。这里强调的是克隆而不是继承。可以出现这种情况:A的prototype是B的实例,同时B的prototype也是A的实例。

    function A(){
        this.name="lee";
    }
    A.prototype.run=function(){
        return "123"
    }
    function B(){
    }
    
    B.prototype= new A();
    var objB = new B()
    console.log(objB.name)

    B拥有A的所有属性和方法。

    但是如果B有和A同样的方法

    function A(){
        this.name="lee";
    }
    A.prototype.run=function(){
        return this.name;
    }
    function B(){
        this.name="JACK";
    }
    B.prototype.run=function(){
        return this.name;
    }
    B.prototype= new A();
    var objB = new B()
    console.log(objB.run())

    结果是 :JACK

    函数运行时会先去本体的函数中去找,如果找到则运行,找不到则去prototype中寻找函数。或者可以理解为prototype不会克隆同名函数。

  • 相关阅读:
    python获取股票数据接口
    Excel使用VBA读取实时WebService股票数据
    安装Pycharm
    Pycharm2019使用
    KLine
    pycharm下用mysql
    新浪股票接口
    SpringBoot整合持久层技术--(二)MyBatis
    SpringBoot整合持久层技术--(一)JdbcTemplate
    SpringBoot整合WEB开发--(十)配置AOP
  • 原文地址:https://www.cnblogs.com/change-oneself/p/4891445.html
Copyright © 2020-2023  润新知