• [概念] 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"}
  • 相关阅读:
    Java基础之IO流,使用File类以树形结构打印指定文件目录
    Java基础之IO流,以字节流的方式操作读写文件FileOutputStream和FileInputStream的使用
    Java基础之IO流,自定义字节流缓冲区装饰类(模仿)
    Java基础之IO流,转换流应用InputStreamReader,OutputStreamWriter
    碰撞处理游戏的原型
    flash中物体运动基础之六方向与角度
    flash中物体运动基础之七碰撞处理
    推导坐标旋转公式
    flash中物体运动基础之一匀速运动
    flash中物体运动基础之五障碍物
  • 原文地址:https://www.cnblogs.com/shayueblog/p/5813230.html
Copyright © 2020-2023  润新知