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不会克隆同名函数。

  • 相关阅读:
    IDEA 快捷键
    Python3开启自带http服务
    redis-creating server tcp listening socket 127.0.0.1:6379: bind No error
    moco的使用方法
    tomcat程序闪退,如何让tomcat不闪退,可以看见报错
    java 项目中Error linstenerStart 报错解决方法
    Linux 常用命令
    TS数据类型及语法
    RabbitMQ的下载和安装
    vue 控制 input 的 disabled
  • 原文地址:https://www.cnblogs.com/change-oneself/p/4891445.html
Copyright © 2011-2022 走看看