zoukankan      html  css  js  c++  java
  • 面向对象高级 构造函数 实例对象

    **抽象的(构造函数-相当于一个模板)**

    ​ **具体的(实例对象)**

     javascript

    // 构造函数--模板

    function GirlFriend(name,age,profile,favours){

      this.favours = favours;

      this.name = name;

      this.age = age;

      this.profile = profile;

      this.eating = function(){

        console.log(this.favours);

      }

      this.shopping = function(){

        console.log('shopping');

      }

      this.coding = function(){

        console.log('coding');

      }

    }

    // 具体的实例对象

    var gf1 = new GirlFriend('翠花',35,'沉鱼落雁,闭月羞花'['香蕉','苹果','梨']);

    var gf2 = new GirlFriend('翠花',35,'ugly'['糕点','红豆冰','韭菜盒子']);

    // 工厂(用来生产实例对象)(设计模式)

    function factory(name,age){

      //var obj = new Object();

      //var obj = new Object;// 如果构造函数不需要传递参数,那么实例化时可以省略括号

      var obj = {};

      obj.name = name;

      obj.age = age;

      return obj;

    }

    var o1 = factory('tom',12);

    var 02 = factory('jerry'13);

    实例对象如何产生?

    1. 通过构造函数实例化 new

    2. 对象字面量(本质上内部也需要构造函数)

     所有的实例对象都有一个对应的构造函数(包括DOM实例对象)

       一般情况下真正的数据存储在实例对象中,而不是在构造函数中

    对象实例化本质:

    1. 浏览器根据构造函数在内存中开辟一块内存

    2. 浏览器会给上面产生的内存起一个名字this(本质上就是内存地址)

    3. 通过this给这块内存添加数据

    4. 把this返回给一个变量

    构造函数(模板-抽象的)

    实例对象(具体的)

    原型 1、数据共享(实例对象共享数据);2、实现继承)

    三者关系及联系:

    1. 所有的构造函数中都有一个原型属性prototype,本质上该属性就是对象(Object的实例对象),该属性位于函数上

    2. 原型对象中默认有一个属性constructor,该属性指向原型所属的构造函数

    3. 所有的实例对象中都有一个--proto--属性,该属性也指向构造函数的原型对象,注意:--proto--属性不可以在编程中使用,该属性不是标准属性,实际上该属性是浏览器内部自己使用的,该属性位于实例对象

    prototype与--proto--:这俩个属性从本质上没有差别,都指向内存的同一个位置

    ```javascript

    /*

    原型链是什么?

    实例对象和原型对象之间形成的链式结构(链接节点的属性是--proto--)

    对于原型链来说,属性的搜索规则:优先从链的起点查询,如果找到了,就返回,如果没有找到就去上层节点查询,直到查询到Object.prototype,如果这里还没有找到就证明,没有该属性

  • 相关阅读:
    ASP.NET 2.0 中的主版頁面 Master Pages
    初探ERP的数据库框架
    node.js 入门,
    mysql 测试
    zendframework 内置view
    session.save_Handler
    读mysql技术内幕 InnoDB 第三章
    php 的命名空间 看鸟哥后的随笔
    mysql innodb技术内幕 ~读 1,2,3 复习
    php 无乱码截取中文
  • 原文地址:https://www.cnblogs.com/first1-you/p/6821990.html
Copyright © 2011-2022 走看看