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.组合使用构造函数和原型模式

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

  • 相关阅读:
    Django form
    centos 配置yum 源
    VMware clone centos 没有获取到ip
    python 自定义分页
    模态对话框
    Keepalived HAProxy mysql 配置HA
    HAProxy + mysql 配置
    mysql 配置主从
    关于python很好的网站和书籍
    【文件系统】dumpe2fs命令
  • 原文地址:https://www.cnblogs.com/tingshu/p/15216711.html
Copyright © 2011-2022 走看看