1.7JavaScript基础(下)

对象

对象:属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组。函数等。

  • 属性:事物的特征,在对象中用属性来表示(常用名词)。
  • 方法:事物的行为,在对象中用方法来表示(常用动词)。

创建对象

常用三种方法创建对象

  1. 利用字面值创建对象。

     let folder1={
         'size':2000,
         'name':'folder1',
         'subFiles':['index.js'],
         'other object':null
     };
     console.log(typeof folder1,folder1);
     let folder2={
         size:2000,
         name:'folder2',
         subFiles:['index.js'],
         'other object':folder1//合法标识符
     };
    
  2. 利用new Object创建对象
    格式:对象.属性=值

     var obj=new Object();
     obj.name='张三丰';
     obj.age=18;
     obj.sex='男';
    
  3. 利用构造函数创建对象
    构造函数是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与new运算符一起使用
    注意:

  • 构造函数用于创建某一类对象,其首字母要大写

  • 构造函数要和new一起使用
    格式:

      function 构造函数名(){
          this.属性=值;
          this.方法=function(){}
      }
      new 构造函数名();
    
      function Star(uname,age,sex){
          this.name=uname;
          this.age=age;
          this.sex=sex;
          this.sing=function(sang){
              console.log(sang);
          }
      }
      var ldh=new Star('刘德华',18,'男');
      ldh.sing('冰雨');
    

对象的属性:名必须是字符串,值可以是任意的。

对象的调用

访问、修改属性
  • 对象.属性名

      console.log(folder2.size,folder2.name);
    
  • 对象[‘属性名’]

      console.log(folder2['size'],folder2['name'],folder2['other object']);
    
  • 方法调用:对象.方法名()

      var star={
      	name:'pink',
      	age:18,
     		sex:'男',
     		sayHi:function(){
          	alert('大家好啊~');
      	}
       }
    
  • 添加属性

      folder2.createTime='2020-6-1';
      folder2['modifyTime']='2020-6-15';
      console.log(folder2);
    

[ ]里面可以填入任意有效的值(表达式)

	let sizeKey = 'size';
	console.log(folder2[sizeKey],folder2['na'+'me']);

链式调用

console.log(folder2["other object"].subFiles[0]);//第1个属性

JS容错,访问不存在的属性,返回undefined
动态地增删对象属性

遍历对象的所有属性

const student={
    name:'张三',
    age:20,
    interests:['跑步','看书'],
    teacher:{
        name:'李四'
    }
};
console.log(Object.keys(student));//Object是JavaScript提供的一个全局对象

for(const key in student){
    console.log(key,student[key]);
}

对象的引用

class Rectangle{
    constructor(length,width){
        this.length=length;
        this.width=width;
    }
    area(){
        return this.length*this.width;
    }
}
const rect = new Rectangle(20,10);
const rect1 = {
    length:20,
    width:10
};
console.log(rect.area());

实践:简单的深拷贝

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值