如果 a.b ,那么a就是对象,b是a的属性
如果 a.c(),那么a就是对象,c是a的方法
对象就是拥有一组属性和方法的集合
定义对象有两种方式:1.采用字面量赋值方式直接定义。2.采用构造函数的方式new一个对象
// 对象就是拥有一组属性和方法的集合
// 如果 a.b ,那么a就是对象,b是a的属性
// 如果 a.c(),那么a就是对象,c是a的方法
// 定义对象的第一种方式:采用字面量赋值方式直接定义
let stu1 = {
//属性名:属性值的方式,定义属性
no:1001,
name:'张三',
age:20,
sex:'男',
//定义学生的方法
study:function(){
console.log('每天学习8小时');
},
play:function(){
console.log('每天玩8小时');
}
}
console.log(stu1);
//调用对象身上的属性
console.log(stu1.name);
console.log(stu1.age);
//调用对象身上的方法
stu1.study()
stu1.play()
/ 构造函数:首先是个函数,这个函数用来创建出对象
// 如果使用构造函数创建出对象:使用new关键字。
// 可以使用系统构造函数Object创建一个对象。效果等同于{}
let obj1 = new Object()
console.log(obj1);
let obj2 = {}
console.log(obj2);
console.log('--------------------------------');
// 多数情况下,都是先自定义一个构造函数,再通过自定义的构造函数创建出对应的对象
// 可以将构造函数理解成:类
function Student(no,name,age,sex){
//这里的this,用于给构造函数定义成员
this.no = no
this.name = name
this.age = age
this.sex = sex
this.sayHi = function(){
console.log(`大家好!我叫${this.name}`);
}
}
// 通过类(构造函数)可以创建出无数个对象
let s1 = new Student(1001,'张三',20,'男')
console.log(s1);
s1.sayHi()
let s2 = new Student(1002,'李四',22,'女')
console.log(s2);
s2.sayHi()
let s3 = new Student(1003,'王五',24,'男')
console.log(s3);
s3.sayHi()
作业:定义一个棋子类,里面有四个属性,分别是:名称,颜色,X轴位置,Y轴位置
// 定义一个棋子构造函数(类)
function Chess(name,color,x,y){
//定义属性
this.name=name
this.color=color
this.x=x
this.y=y
//定义方法
//显示当前位置的方法
this.show=function(){
console.log(`${this.color}${this.name},当前位置是X:${this.x} Y:${this.y}`);
}
//移动棋子的方法
this.move=function(x,y){
this.x = x
this.y = y
//位置更新后,重新调用显示当前位置的方法
this.show()
}
}
// 创建一个红马
let redHorse = new Chess('马','红',15,1)
redHorse.show()
redHorse.move(13,2)
//创建一个黑车
let blackCar = new Chess('车','黑',1,1)
blackCar.show()
blackCar.move(5,1)