zoukankan      html  css  js  c++  java
  • 构造函数与new关键字

     
    // function f1(){
    // console.log(this)
    // }
    // f1() //window

    // f2 = new f1; //f1{}
    // f1() //window
    构造函数
    构造函数本事是普通函数,当我们用new关键字调用时,能实现某类功能,我们才把它称呼为构造函数。
    所以构造函数的核心就是关键字new .
    构造函数(new)
     
    当任意一个普通函数用于创建一类对象,并且通过new操作符来调用时,它就可以作为构造函数
     
    作用:构造新对象,设置对象的属性和方法.(构造函数里面写一堆this的作用)
     
    ECMAScript提供了多个内置构造函数,如 Object、Array、String、Boolean、Number、Date…等等。
    var obj = new Object();
    var arr = new Array();
     
     
     

    用new调用函数的执行过程
    new

    * 一元运算符,后面只能跟函数,用来调用函数

    *

    * 调用函数的方式

    * 1、new 函数名 ( 没有参数的情况下用这种方式 )


    * 2、new 函数名()

    用new调用函数的执行过程

    简单来说,new调用一个函数,执行了该函数,然后返回一个对象(用变量接收这个对象) 。
    function f1(){
    console.log(this)
    }
    f1() //window(普通函数)

    new f1; //f1{} 和new f1()效果一样 由new运行,称为构造函数,改变了 this指向
    f1() //window ,没用new运行,还是普通函数

    * 1、自动创建一个空对象

    * 2、把函数内部的this指向创建的这个对象(也就是构造函数的作用,构造新对象,设置对象的属性和方法构造函数里面写那么多this的作用))

    * 3、在函数执行完成以后自动返回创建的那个对象,即使函数里面没有return
    函数里有return

    (1、return的是对象

    返回这个对象

    2、return的是非对象

    返回自动创建的那个对象 )
    * 注意:

    * 1、用new调用的函数,得到的永远是一个对象,不管函数有没有返回值

    * 2、使用new调用函数,这个函数就是一个用来创建对象的函数(构造函数)

    */

    构造函数的调用其中有几步是:

    1.创建一个新对象;
    2.将构造函数的作用域赋给新对象(因此this就指向了这个新对象);
    3.执行构造函数中的代码;
    4.返回新对象;

  • 相关阅读:
    第三周作业
    面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?请根据自己的理解简明扼要的回答。
    移动APP开发使用什么样的原型设计工具比较合适?
    java 从上至下打印二叉树
    Qt applendPlainText()/append() 多添加一个换行解决方法
    tolua 转换 std::shared_ptr
    cmake add_custom_command 使用
    Boost使用笔记(Smart_ptr)
    webpack4 安装
    git安装管理
  • 原文地址:https://www.cnblogs.com/shenlan88/p/11072740.html
Copyright © 2011-2022 走看看