zoukankan      html  css  js  c++  java
  • 原型


    //如果在构造函数中定义函数,那么每次创建对象,都会重新创建该函数
    //但是函数内部代码完全相同,就造成了资源浪费
    //为了处理这个问题,我们要让所有的对象共用一个方法
    //在构造函数外部定义好该函数,将该函数赋值给构造函数内的方法

    //如何使用原型来解决构造函数存在的问题?
    //构造函数的原型对象中的成员,可以被该构造函数创建出来的所有对象访问
    //而且,所有的对象共享该对象
    //所以,我们可以将构造函数中需要创建的函数,放到原型对象中存储
    //这样就解决 全局变量污染的问题 以及 代码结构混乱的问题

    function Person(name, age, gender) {
    this.name = name;
    this.age = age;
    this.gender = gender;
    }

    //原型的使用方法
    //1.利用对象的动态特性给原型对象添加成员
    //2.直接替换原型对象

    //如果使用第二种方式使用原型,那么会出现如下问题:
    //在替换原型之前创建的对象的原型 和 在替换原型对象之后的创建的对象
    //的原型 不是同一个!
    Person.prototype.sayHello = function () {
    console.log("Nice to meet you all");
    }

    var p = new Person("刘能", 18, "male");
    p.sayHello();

    //替换了原型对象
    Person.prototype = {
    msg : "你猜我在不在"
    };

    var p1 = new Person("xzy",18,"male");

    console.log(p1.msg);
    // p1.sayHello(); //不能
    p.sayHello(); //还是指向之前的原型对象,这点注意,替换原型对象,construction的指向就变成object,而不是构造函数,也可以在替换的原型对象上添加
    constructor : Person

    比如:
    Person.prototype = {
    constructor : Person
    };

    图像 1

  • 相关阅读:
    测试脚本
    浅谈优化SQLServer数据库服务器内存配置的策略
    真正的取真实IP地址及利弊Asp.net
    ASP.NET一些常用正则表达式
    (CHMSoftware)工具集锦
    仿真方面的文章
    TPlan测试过程管理工具技术摘要
    Linux 2.6内核的精彩世界(多媒体)
    Ajax技术实践之完成Ajax自动完成功能
    硬件测试
  • 原文地址:https://www.cnblogs.com/vzaiBoke/p/9105466.html
Copyright © 2011-2022 走看看