美文网首页
【前端学习笔记】JS构造函数简要

【前端学习笔记】JS构造函数简要

作者: 花上 | 来源:发表于2018-11-13 14:46 被阅读4次

 函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。

ECMAScript 中的构造函数本来是函数,但用来创建特定类型的对象。Object 和 Array 是原生构造函数。

构造函数命名始终是以大写字母开头,非构造函数应该以小写字母开头。

例: function Preson(name,age,job){

        this.name = name;

        this.age = age;

        this.job = job;

        this.sayName = function(){

            alert(this.name);

        };

}

        var person1 = new Person("Nichilas",29,"Engineer");

        var person2 = new Person("Greg",27,"Doctor");

创建Person 实例,必须使用 new 操作符。以这种方式调用构造函数实际上会经历4个步骤。

(1)创建一个新对象;

(2)将构造函数的作用域赋给新对象(因此this就指向了这个新对象);

(3)执行构造函数中的代码(为这个新对象添加属性);

(4)返回新对象。


将构造函数当做函数

构造函数和其他函数的唯一区别在于调用方式的不用。构造函数和其他函数的定义方法没有差异。

任何函数,如果使用 new 操作符来调用,那它就可以作为构造函数;而任何函数,如果不用 new 操作符调用,那它就跟普通函数没有区别。

其他构造函数的调用方式

//当做构造函数使用

    var person = new Person("Nicholas",29,"Software Engineer",);

    person.sayName();  //Nicholas""

//作为普通函数调用  

    Person("Gtreg",29,"Doctor");

    window.sayName();  //Greg

//在另一个对象的作用域中调用    

    var o = new Object();

    Person.call (o,"Kristen", 25 , "Nurse");

    o . sayName();  //"Kristen"


相关文章

  • 【前端学习笔记】JS构造函数简要

    函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。 ECMAScript 中的构造函数本来是函数,但...

  • 前端JS进阶二(ES6-Class语法)

    Class和普通构造函数有何区别 前端会使用ES6中的Class来代替JS中的构造函数 JS 构造函数 Class...

  • javascript 笔记03(创建对象/原型模式/js 继承/

    js 笔记3 接笔记2 13.创建对象 工厂模式 构造函数模式 以这种方式调用构造函数实际上会经历以下 4 个步骤...

  • Js的继承

    js的继承 @(js)[继承, js, 前端] 组合继承是原性链继承和构造函数继承的合体,它汲取了二者各自的有点,...

  • Kotlin构造函数(constructor)完全解析

    简要介绍 Kotlin的类必须有一个主构造函数,可以有多个次要构造函数. 主构造函数 1. 写法一(主构造函数初始...

  • 我的JS笔记 -- 类

    JS是没有类的,但JS可以利用构造函数实现近似类的功能。 构造函数 构造函数,是用来创建对象的函数。与普通的函数声...

  • JS 学习笔记 | 构造函数和原型

    1.构造函数和原型 1.1 对象的三种创建方式--复习 字面量方式var obj = {}; new关键字var ...

  • 2020-12-15

    js对象的创建和函数 创建对象 工厂模式 构造函数 原型方式+构造函数

  • 2021-04-15

    Js构造函数、原型、原型链整理 1,普通函数、构造函数区别: 1,名字: 构造函数首字母建议大写,普通函数首字母建...

  • Lambda解析

    的区别 smali文件简要结构 存在多个构造函数时,每个构造函数都存在一份相同的公共执行流程。

网友评论

      本文标题:【前端学习笔记】JS构造函数简要

      本文链接:https://www.haomeiwen.com/subject/hpokfqtx.html