构造函数

666 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

构造函数

构造函数又称为构造器或对象模板,是对象中的一个方法,在实例化时构造器被调用。在JavaScript中函数局可以作为构造器使用,因此不需要特别地定义一个构造器方法。

function Person(){
	console.log('Person instantiated')
}
var person = new Person();
  • 这里的Person()并不是作为函数,而是构造函数。
  • 创建person对象需要使用new关键字。

构造函数的属性

构造函数的属性实际上就是对象的变量。一个对象可以包含多个属性,定义构造函数的属性时使用this关键字。

/*
    创建构造函数(类的概念) - 用于创建对象(属性和方法)
    function 构造函数名称() {
        this.属性名=属性值;
        this.方法名=function () {
            方法体
        }
    }
    * this关键字->指代利用当前构造函数创建的对象
*/
function Hero(name) {
    this.name=name;
    this.sayMe=function () {
        console.log('我叫'+ name);
    }
}
// 利用构造函数创建对象
var hero = new Hero('猪猪侠');
console.log(hero);//Hero { name: '猪猪侠', sayMe: [Function] }

函数与构造函数的区别:

1、构造函数也是普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写。

2、构造函数和普通函数的区别在于:调用方式不一样。作用也不一样(过偶早函数用来新建实例对象)。

3、调用方式不一样。

​ a. 普通函数的调用方式:直接调用 person();

​ b.构造函数的调用方式:需要使用new关键字来调用 new Person()**;

4、构造函数的名称与类名相同:Person()这个构造函数,Person既是函数名,也是这个对象的类名。

5、构造函数的内部用this来构造属性和方法。

下面示例代码展示了函数与构造函数的调用方式

// 1、函数; 2、构造函数
function Hero(name){
    var v =100;//局部变量
    function n() {}//内部函数
    this.name = name;//属性
    this.sayMe = function () {//属性
        console.log('我是'+ name);
    }
}

// 1、函数调用
Hero();
// 2、构造函数使用
var hero = new Hero();