美文网首页
理解 javascript prototype

理解 javascript prototype

作者: 并肩走天涯 | 来源:发表于2016-08-12 12:39 被阅读40次

javascript prototype

  • 原型法的主要思想是,现在有个类A,想要创建一个类B,这个类是以A为原型的,并且能进行扩展,则称B的原型为A。

  • Javascript 的方法分为三类: 类方法、对象方法、原型方法。

    function People(name) {
      this.name = name;
      // 对象方法
      this.Introduce = function() {
        console.log("name is " + this.name);
      }
    }
    // 类方法
    People.Run = function() {
      console.log("can run");
    }
    // 原型方法
    People.prototype.IntroduceZh = function() {
      console.log("pro name is " + this.name);
    }
    // 测试
    var p = new People("jack");
    p.Introduce();
    People.Run();
    p.IntroduceZh();
    
  • obj1.func.call(obj) 方法,就是将 obj 当成 obj1,调用 func 方法。

  1. prototype 的含义
  • JavaScript中的每个对象都有 prototype 属性。对象的 prototype 属性的解释是,返回对象类型原型的引用。

  • A.prototype = new B(); A的prototype为B的一个实例,可以理解为 A 将 B 中的方法和属性全部克隆了一遍,A 能使用 B 的方法和属性。

  1. 验证
function base() {
  this.show = function() {
    console.log("base:show");
  }
}
function extend() {
  this.show = function() {
    console.log("extend:show");
  }
}
extend.prototype = new base();
var instance = new extend();
instance.show(); // extend:show
var base = new base();
base.show.call(instance); // base:show

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

相关文章

网友评论

      本文标题:理解 javascript prototype

      本文链接:https://www.haomeiwen.com/subject/tktesttx.html