zoukankan      html  css  js  c++  java
  • 4.原型的动态性



    function Person(){

    }
    var firend=new Person();
    Person.prototype.sayHi=function(){
    alert("hi");
    }
    firend.sayHi(); // hi
    // 没有重写原型!!!!
    //虽然sayHi()方法是在firend实例化之后定义的,但是firend仍然可以访问sayHi()方法,
    //其原因可以归结为实例与原型之间的松散连接关系,当我调用 firend.sayHi()方法时,会在实例中搜索 sayHi
    属性,在没找到的情况下,会继续搜索原型,因为实例与原型之间的连接是一个指针,不是副本,因此就可以在原型中找到sayHi,
    并返回保存在那的函数。



    function Person2(){
    }
    var firend2=new Person2();
    Person2.prototype={
    constructor:Person2,
    name:"summer2",
    age:25,
    job:"enginner2",
    sayName2:function(){
    alert(this.name);
    }
    }
    firend2.sayName2();// 报错 : firend2.sayName2 is not a function

    // 上面的例子重写了整个原型对象,我们知道,调用构造函数时,会为实例添加一个指向最初原型的(prototype)指针,
    //而把原型修改为另外一个对象就等于切断了构造函数与最初原型之间的联系,请记住:实例中的指针紧指向原型,而不指向构造函数
  • 相关阅读:
    UITableView
    xib的读取方式
    远程登录树莓派
    来体验下Linux吧
    树莓派了解Linux基本命令
    来感受Linux命令行的“真香定律”
    初尝树莓派
    从入手树莓派开始
    08-java学习笔记-集合框架中的工具类
    07-java学习笔记-map集合
  • 原文地址:https://www.cnblogs.com/liululu/p/5830116.html
Copyright © 2011-2022 走看看