zoukankan      html  css  js  c++  java
  • prototype的认识

    在js中任何对象都拥有prototype属性,解释为:返回对象类型原型的引用。

    prototype可以将其他属性方法克隆下来。

    function A(){
    	this.name = "A";
    	this.say=function(){
    		alert("I am "+this.name);
    	}
    }
    function B(){
    	this.name = "B";
    }
    B.prototype = new A();
    var nB = new B();
    nB.say(); //I am B
    nB.say.call(A); //I am A
    

    上例中,先定义了一个方法A,然后方法B通过prototype属性克隆了方法A,也就具有了A的所有属性和方法,因此当我们实例化B之后,nB是拥有say()方法的。

    由于函数运行时方法和属性会从自身开始找起,如果找不到再一层一层的向prototype中找,因此this.name为B(如果function B不定义this.name那么执行时this.name就为A了)。

    我们还可以通过call/apply方法改变this的指向,以调用A中的say方法。

  • 相关阅读:
    MySQL 第四天
    MySQL 第三天
    MySQL第二天
    MySQL第一天
    Day27-28 基础加强
    Day24-26 项目练习(图书商城)
    Day23 ajax
    Day22 文件上传下载和javaMail
    Day21 过滤器(Filter)
    小轮播图
  • 原文地址:https://www.cnblogs.com/smartyu/p/5197384.html
Copyright © 2011-2022 走看看