zoukankan      html  css  js  c++  java
  • js高级-构造函数与原型

    1.工厂模式

    由于ES中无法创建类,,开发人员便开发了一种函数,用函数来封装创建对象的细节。

    2.构造函数
      1. 构造函数是用来创建对象的,本质上也是函数,构造函数和普通函数的唯一区别,在于调用方式不同。不存在定义构造函数的特殊语法。任何函数只要通过关键字new来调用,那它就可以作为构造函数。
      1. 将构造函数当作普通函数调用时(即没有使用new关键字),其中的属性和方法被绑定到了windows对象上。(在全局作用域中调用一个函数时,this对象总是指向global对象,浏览器中就是windows对象)

    构造函数的缺点:
    每个方法都要在每个实例上重新创建一遍,占用内存。不同实例上的同名函数是不相等的。

    构造函数模式:
    没有显示创建对象;
    属性和方法赋值给了this对象;
    没有return返回语句
    使用new关键字调用
    构造函数名首字母大写

    3.原型

    每一个函数都有一个prototype(原型)属性,这个属性指向一个对象,即原型对象。原型对象包含了所有实例共享的属性和方法。

    理解原型对象:
    只要我们创建了一个新函数,就会根据一组特定的规则为该函数创建一个prototype属性,这个属性指向函数的原型对象。默认情况,所有原型对象自动获得一个constructor(构造函数)属性,这个属性指向prototype所在的函数。eg:Persion.prototype.constructor又指向了Persion
    每一个对象实例都有一个内部属性__proto__属性,该属性与构造函数没有直接关系,它指向了原型对象(该属性在火狐,safari和chrome支持,其他方式不可见)

    4.组合使用构造函数和原型模式

    构造函数模式用于定义实例属性,原型模式用于定义方法和共享属性。

  • 相关阅读:
    MS SQL Server备份与恢复实例
    如何加快查询,优化数据库
    使用索引的误区之一:没有使用复合索引的前导列导致查询不使用索引
    URL重写可删节日期模式正则表达式之强力应用
    索引全攻略
    大数据量分页存储过程效率测试附代码
    形成查询结果(实体框架) 使用导航属性导航关系
    C#开源资源大汇总
    大数据量的系统的数据库结构如何设计?
    数据库查询优化
  • 原文地址:https://www.cnblogs.com/tingshu/p/15216711.html
Copyright © 2011-2022 走看看