对象
如果 a.b ,那么a就是对象,b是a的属性
如果 a.c(),那么a就是对象,c是a的方法
对象就是拥有一组属性和方法的集合
定义对象有两种方式: 1.采用字面量赋值方式直接定义。2.采用构造函数的方式new一个对象
1.采用字面量赋值方式直接定义
示例:
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()
2.采用构造函数的方式new一个对象
let obj = new Object()
console.log(obj);
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,'女')
s1.sayHi()
console.log(s1);
let s2 = new Student(1002,'李四',22,'男')
s2.sayHi()
console.log(s2);
let s3 = new Student(1003,'王五',25,'男')
s3.sayHi()
console.log(s3);
对象练习-棋子类
定义一个棋子类,里面有四个属性,分别是:名称,颜色,X轴位置,Y轴位置
比如:红色的马,当前位置是(X=15,Y=11)
里面有两个方法:分别是:
1.显示当前棋子在什么位置
2.移动方法,该方法,需要传两个参数,就是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)
输出结果是: