对象
1、什么是对象?
对象是一种数据类型(复合数据类型),对象中包含了属性和方法
(1)属性:表示对象的静态特征。使用方式为 “ 对象名.属性名”
(2)方法(函数):表示对象的行为(动态特征)。使用方式为“对象名.方法名(【参数】)”
2、对象的定义:
(1)使用字面量:{ }
let 对象名 = {
属性名:属性值
方法名:function(【参数】){
函数体语句
}
}
(2)使用Object:
a、let 对象名 = new Object()
对象名.属性名 = 属性值
对象名.方法名 = function(【参数】){
函数体语句
}
b、let 对象名 = new Object({
属性名:属性值
方法名:function(【参数】){
函数体语句
}
})
(3)使用构造函数创建对象
a、定义构造函数:
function 构造函数名(【参数】){
this.属性名 = 属性值
this.方法名 = function(【参数】){
函数体语句
}
}
b、创建对象
let 对象名 = new 构造函数名(【参数】)
3、对象访问属性和方法
对象名.属性名
对象名.方法名(【参数】)
对象名['属性名']
对象名[方法名]()
4、遍历对象的属性和方法:使用for...in循环
let people = {
id: '1001',
name: '张三丰',
age : 88,
show:function(){
console.log('姓名:',this.name)
}
}
for(let p in people){
console.log(p+':'+people[p]) //p既是people对象的属性名或方法名,也是索引
}
5、对象数组--数组中存放的是对象*(数组中的每个元素都是对象)*
//1.创建一个构造方法:Student
function Student(name,city){
this.name = name
this.city = city
this.html = 0 //html属性的默认值为0
this.css = 0 //css属性的默认值为0
this.show = function(){
console.log('姓名:',this.name)
console.log('城市:',this.city)
console.log('Html成绩:',this.html)
console.log('Css成绩:',this.css)
}
this.getSum = function(){
return this.html + this.css
}
}
//2.创建对象
let s1 = new Student('贾宝玉','南京')
s1.html = 78
s1.css = 69
let s2 = new Student('林黛玉','镇江')
s2.html = 85
s2.css = 90
let s3 = new Student('王熙凤','南京')
s3.html = 75
s3.css = 78
let s4 = new Student('薛宝钗','南京')
s4.html = 82
s4.css = 65
//3.定义数组:将s1~s4对象存入该数组
let arr = [s1,s2,s3,s4] //arr就是对象数组
let temp = [s1,s2,s3,s4]
console.log(temp)
//4.对数组中的对象按总成绩降序排列
for(let i=0;i<arr.length;i++){
for(let j=0;j<arr.length-1;j++){
if(arr[j].getSum() < arr[j+1].getSum()){
let t = arr[j]
arr[j] = arr[j+1]
arr[j+1] = t
}
}
}
console.log(arr)