JavaScript 构造函数

132 阅读1分钟

1. new 操作符

new X() 自动做了四件事情:

  1. 自动创建空对象;
  2. 自动为空对象关联原型,原型地址指定为 X.prototype;
  3. 自动将空对象作为 this 关键字运行构造函数;
  4. 自动 return this

2. 构造函数 X

  1. 可以构造出对象的函数叫做构造函数
  2. X 函数本身负责给对象本身添加属性
  3. X.prototype 对象负责保存对象的公共属性

原型公式:对象 .__proto__===其构造函数.prototype

3.用 prototype 创建一个构造函数

function Person(name,age){  // 创建一个构造函数 Person, P 必须大写,两个形参 name 和 age 
	this.name = name; // 形参 name 赋值给新对象,因为新对象还没有被创建,所以用 this 表示新对象
	this.age = age;
}
Person.prototype.sayHi = function(){ // 该构造函数里面的函数
	console.log('你好,我叫'+this.name)
}

let person1 = new Person('潘',20) // 此处用到了new 操作符,创建出一个新的对象 person1
person1 // 获取 person1
Person {name: "潘", age: 20} // 得到 person1 的两个属性和属性值
person1.sayHi() // 执行 person1 里面的函数
你好,我叫潘

4. 用 class 创建一个构造函数

class Person{ // 创建一个叫 Person 的构造函数
	constructor(name,age){ // 创造该构造函数需要用到的形参
    this.name = name;
    this.age = age
    }
    sayHi(){  // 该构造函数里面的函数
    console.log('你好,我叫'+this.name) 
    }
}

let person2 = new Person('江'18)
person2
Person {name: "江", age: 18}
person2.sayHi()
你好,我叫江