zoukankan      html  css  js  c++  java
  • 使用 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_ 属性。所以不建议使用

  • 相关阅读:
    luogu 1865 数论 线性素数筛法
    洛谷 2921 记忆化搜索 tarjan 基环外向树
    洛谷 1052 dp 状态压缩
    洛谷 1156 dp
    洛谷 1063 dp 区间dp
    洛谷 2409 dp 月赛题目
    洛谷1199 简单博弈 贪心
    洛谷1417 烹调方案 dp 贪心
    洛谷1387 二维dp 不是特别简略的题解 智商题
    2016 10 28考试 dp 乱搞 树状数组
  • 原文地址:https://www.cnblogs.com/chengmingxiaowu/p/7686595.html
Copyright © 2011-2022 走看看