zoukankan      html  css  js  c++  java
  • [概念] javascript构造函数和普通函数的

    [概念] javascript构造函数和普通函数的

    javascript构造函数和普通函数的区别是什么:

    1. 调用方式的区别:
      1. 构造函数需要使用new运算符调用,如果构造函数没有参数可以省略小括号,比如new Object。
      2. 普通函数的调用不需要new运算符,而且必须要有小括号。 关于new的作用可以参阅js的new运算符的作用简单介绍一章节。
    2. this的指向问题:
      1. 构造函数的this会被绑定到创建的对象实例上。
      2. 普通函数的this则属于此函数的调用者。
    3. 命名方式:
      1. 构造函数名称通常首字母要大些。
      2. 普通函数名称首字母要小写,使用驼峰命名方式。 构造函数

    使用构造器创建对象

    在 JavaScript 中,构造器其实就是一个普通的函数。当使用 new 操作符 来作用这个函数时,它就可以被称为构造方法(构造函数)。

    我的理解:构造函数 就是 类了。 构造函数的 原型 可 扩展 实例化 后 的 方法。 构造函数只有在被new操作符调用的时候才能称之为构造函数。其它时候,它就是一个普通函数。这样构造函数的特殊性还不如说是 new 操作符的 作用 —— 创建对象,并返回对象本身。

    通过构造函数 创建的 对象 与 普通的 var object = {} 应该是没区别的吧。

    JavaScript中的普通函数与构造函数

    与普通函数相比,构造函数有以下明显特点

    1. 用new关键字调用 var prince=new Prince("charming",25);
    2. 函数内部可以使用this关键字
      在构造函数内部,this指向的是构造出的新对象。用this定义的变量或函数/方法,就是实例变量或实例函数/方法。需要用实例才能访问到,不能用类型名访问。 prince.age;//25 Prince.age;//undefined
    3. 默认不用return返回值 构造函数是不需要用return显式返回值的,默认会返回this,也就是新的实例对象。当然,也可以用return语句,返回值会根据return值的类型而有所不同,细节将在下文介绍。
    4. 函数命名建议首字母大写,与普通函数区分开。 不是命名规范中的,但是建议这么写。

    使用new关键字实例化的时候发生了什么?

    以上文中的Prince()函数举个栗子:

    1. 第一步,创建一个空对象。 var prince={}
    2. 第二步,将构造函数Prince()中的this指向新创建的对象prince。
    3. 第三步,将prince的_proto_属性指向Prince函数的prototype,创建对象和原型间关系
    4. 第四步,执行构造函数Prince()内的代码。

    构造函数有return值怎么办?

    构造函数里没有显式调用return时,默认是返回this对象(这个时候,必须要 使用new关键字来调用吧),也就是新创建的实例对象。 当构造函数里调用return时,分两种情况:

    1. return的是五种简单数据类型:String,Number,Boolean,Null,Undefined。 这种情况下,忽视return值,依然返回this对象。

    2. return的是Object 这种情况下,不再返回this对象,而是返回return语句的返回值。

        function Person(name){
            this.name=name;
            return {name:"cherry"}
        }
        var person=new Person("sheila");
        person.name;//cherry
        person;//Object {name: "cherry"}
  • 相关阅读:
    Azure 虚拟机安全加固整理
    AzureARM 使用 powershell 扩容系统磁盘大小
    Azure Linux 云主机使用Root超级用户登录
    Open edX 配置 O365 SMTP
    powershell 根据错误GUID查寻错误详情
    azure 创建redhat镜像帮助
    Azure Powershell blob中指定的vhd创建虚拟机
    Azure Powershell 获取可用镜像 PublisherName,Offer,Skus,Version
    Power BI 连接到 Azure 账单,自动生成报表,可刷新
    Azure powershell 获取 vmSize 可用列表的命令
  • 原文地址:https://www.cnblogs.com/shayueblog/p/5813230.html
Copyright © 2011-2022 走看看