zoukankan      html  css  js  c++  java
  • 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不会克隆同名函数。

  • 相关阅读:
    ZipHelper 压缩和解压帮助类
    搜索引擎索引数据结构和算法
    Api之Cors跨域以及其他跨域方式
    UML类图
    NetAnalyzer2016使用方法
    30分钟快速掌握AngularJs
    抖屏与收发各种类型文件
    NET Core RC2
    如何检测被锁住的Oracle存储过程及处理办法汇总(转)
    oracle spfile和pfile文件(转)
  • 原文地址:https://www.cnblogs.com/change-oneself/p/4891445.html
Copyright © 2011-2022 走看看