构造函数是一种特殊的函数
1.构造函数为了区别与其他普通函数,首字母一般是大写
function Student() {
// 给对象添加属性
this.name = 'zs'
this.age = 18
this.study = function () {
console.log('good good study')
}
}
2.构造函数必须通过new 函数名() 得到一个对象
let s1 = new Student()
console.log(s1)
console.log(s1.name, s1.age)
s1.study()
let s2 = new Student()
console.log(s2)
3.定义构造函数可以传参数使构造函数更灵活
function Student(name, age) {
this.name = name
this.age = age
}
let s1 = new Student('zs', 18)
console.log(s1)
let s2 = new Student('ls', 20)
console.log(s2)
4.实例成员和静态成员
(1)实例成员:实例对象的属性和方法
(2)静态成员:构造函数本身的属性和方法
function Student(name, age) {
// 实例成员
this.name = name
this.age = age
}
// 静态成员-直接给构造函数本身添加属性
Student.school = '清华大学'
console.log(Student.school)
let s1 = new Student('zs', 18)
console.log(s1.name) // 实例成员访问的时候 实例对象.实例成员
//console.log(s1.school)
let s2 = new Student('ls', 20)
console.log(s2)
5.内置构造函数
其实字符串,数值型,布尔型等等基本类型也都有专门的构造函数,我们称为包装类型
//Object
var obj = {}
var obj2 = new Object()
console.log(obj2)
// Array构造函数
var arr = new Array()
var arr1 = []
var str = 'china'
// 自动包装 new String('china')
console.log(str.length)
var num1 = new Number(10) // num1是数字对象
var num2 = 10