<!-- 创建对象可以通过以下三个方法 -->
<!--
1.对象字面量
let obj1={}
2.new Oject()
let obj2=new Oject()
3.自定义函数
function 函数名(){}
4.构造函数
构造函数用于创建某一类对象,起首字母要大写,必须要有new
构造函数是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,
它总与new一起使用。我们可以把对象中一些公共的属性和方法抽离出来,然后封装到这个函数里面
new在执行时会做四件事情
1.在内存中创建一个新的空对象
2.让this指向这个新的对象
3.执行构造函数里面的代码,给这个新对象添加属性和方法
4.返回这个新对象(所以构造函数里面不需要return)
function Star(name,age){
this.name=name;
this.age=age;
this.sing=function(){
console.log("我会唱歌")
}
}
//不同的对象
var ldh=new Star('刘德华',18);
var zxy=new Star('张学友',18);
console.log(Idh)
// 同个方法
Idh.sing() //调用方法
zxy.sing()
-->
<!-- 构造函数中的属性和方法我们称为成员,成员可以添加 -->
<script>
function Star(name,age){
this.name=name;
this.age=age;
this.sing=function(){
console.log("我会唱歌")
}
}
var ldh=new Star('刘德华',18);
//实例成员就是构造函数内部通过this添加的成员 name age sing就是成员
// 实例成员就是实例化的对象来访问
console.log(Idh.name);
Idh.sing()
console.log(Idh.name); //实例成员只能通过实例化的对象来访问
console.log(Star.name); //不可以通过构造函数来访问实例成员
//静态成员 在构造函数本身上添加的成员 sex就是静态成员
Star.sex="男 ";
//静态成员只能通过构造函数来访问
console.log(Star.sex);
console.log(Idh.sex); //不能通过对象来访