• 使用 prototype 定义方法和属性


    除了可以在类的构造器方法中定义方法和属性外,也可以使用 prototype 定义方法和属性。每个类都有这个属性,该属性是一个静态属性,因此无需实例化,只需使用类引用该属性即可。

    1.1 使用 prototype 定义方法:

    function Person(myName,myAge){

    this.nickName = myName;

    this.age = myAge;

    }

    Person.prototype.showInfo = function(){

    return("hi"+this.nickName+"我现在"+this.age+"岁了。");

    };

    1.2 使用 prototype 定义属性:

    function showHistory(){

    return "10年开发体验";

    }

    Person. prototype.showHistory = showHistory;

    var person_1 = new Person("xiaowu","28");

    alert(person_1.showHistory()) //弹出10年开发体验

    1.3 关于 prototype 和 _proto_ 属性

    每个构造器都有一个 prototype 属性,该属性在定义构造器方法时自动创建的。 prototype 属性代表用该函数创建的类的默认属性值。

    如果将方法分配给类的 prototype 属性,则该类的任何新创的实例都可以使用这些方法。

    类的每个新实例也都有一个 _proto_ 属性,用于引用创建它的构造器方法的 prototype 属性。

    可以使用 prototype 和 _proto_ 属性扩展类,这样可以以面向对象的方式重新使用代码。

    person_1._proto_.showHistory = showHistory;

    tip:最好将方法分配给构造器方法的 prototype 属性,因为它只存在于一个位置,并且由该类的新实例引用。_proto_ 属性最终还是要经过对 prototype 属性的引用才能实现其功能。

    并且,IE不支持 _proto_ 属性。所以不建议使用

  • 相关阅读:
    Java主流日志工具库
    JSON 与 String、Map、JavaBean互转
    Session超时处理
    spring cron表达式(定时器)
    Windows服务器下用IIS Rewrite组件为IIS设置伪静态方法
    JAVA导出Excel(支持多sheet)
    自己实现一个简单的线程池
    数据库
    计算机网络
    HashMap源码分析
  • 原文地址:https://www.cnblogs.com/chengmingxiaowu/p/7686595.html
Copyright © 2020-2023  润新知