JS:用new操作符调用函数、构造函数、类和实例

JS:用new操作符调用函数、构造函数、类和实例

一、用new操作符调用函数
JS规定,使用new操作符调用函数会进行“四步走”
1)函数体内会自动创建出一个空白对象
2)函数的上下文(this)会指向这个对象
3)函数体内的语句会执行
4)函数会自动返回上下文对象,即使函数没有return语句
二、举例
第1步:函数体内会自动创建出一个空白对象
第2步:函数的上下文(this)会指向这个对象

function fun() {
    
      
	//在函数体开头,自动创建了一个空白对象{}
	//this指向空白对象
    this.a = 3;
    this.b = 5;
}
var obj = new fun();
console.log(obj);

第3步:执行函数体中的语句

this.a = 3;
this.b = 5;
//由以上this是{},即 最后语句为{a: 3, b: 5}

第4步:函数会自动返回上下文对象,即使函数没有return语句
在这里插入图片描述
最后结果:{a: 3, b: 5}
总结:上下文规则
在这里插入图片描述
三、构造函数
1.构造函数:在 JavaScript 中,用 new 关键字来调用的函数,称为构造函数。构造函数首字母一般大写。

function People(name, age, sex) {
    
      //接收三个参数
    this.name = name;
    this.age = age;
    this.sex = sex;    //this上绑定同名属性
}
var xiaoming = new People('小明', 12,'男');  //传入三个参数
var xiaohong = new People('小红', 10,'女');
var xiaogang = new People('小刚', 13,'男');  

在这里插入图片描述
(1)用new调用一个函数,这个函数就被称为“构造函数”,任何函数都可以是构造函数,只需要用new调用它
(2)构造函数用来“构造新对象”,它内部的语句将为新对象添加若干属性和方法,完成对象的初始化
(3)构造函数必须用new关键字调用,否则不能正常工作,正因如此,开发者约定构造函数命名时首字母要大写
(4)一个函数是不是构造函数,要看它是否用new调用,而至于名称首字母大写,完全是开发者的习惯约定
(5)构造函数中的this不是函数本身,this是创建的新对象,将来会成为小明、小红、小刚等
四、类和实例:实例是具体的对象
在这里插入图片描述

おすすめ

転載: blog.csdn.net/liuxudanhahaha/article/details/122275761