蓝旭工作室第四周预习:JS对象

        在JavaScript中。对象是一组无序的相关属性和方法的集合,所有的事物都是对象。

        对象由属性和方法组成。

        属性:事物的特征。方法:事物的行为。

一、对象创建

1.利用字面量创建对象

var obj = {};        //空对象

var obj = {

        成员属性名:成员属性对应值;

        成员方法名:成员方法对应函数;

};                        //非空对象

2.利用new Object创建对象

var obj = new Object();        //空对象

var obj = new Object();

obj.属性名 = 成员属性对应值;

obj.方法名 = 成员方法对应函数;        //非空对象

我们可以使用 instanceof 运算符检查一个对象是否是一个类的实例,它返回true或false。 

对象 instanceof 构造函数 

3.利用构造函数创建对象

function 构造函数名(形参列表){

        this.属性 = 属性值;

        this.方法 = function(){

                方法体;

        };

}

var obj = new 构造函数名(实参列表);  

二、对象访问

对象名.成员属性名

对象名['成员属性名']

对象名.成员方法名()

对象名['成员方法名']() 

注:JavaScript中的对象具有动态特征。

        如果一个对象没有成员,用户可以手动赋值属性或方法来添加成员。

        如果访问对象不存在的属性,会返回undefined。 

三、对象遍历

在JavaScript中,for...in...循环用于遍历对象的可枚举属性。这种循环提供了一种简洁的方式来访问对象的所有属性,并对其进行操作。

for (let key in obj) {
  console.log(key, obj[key]);
} 

注:for…in循环会遍历对象自身的可枚举属性以及继承的可枚举属性。

        在遍历过程中,属性名会被赋值给循环变量。如果需要获取属性值,可以通过对象和属性名使用下标访问的方式来获取属性值。

        使用for…in循环遍历对象时,无法保证属性遍历的顺序。对象的属性在内部存储时是没有固定顺序的,因此遍历顺序不一定与属性定义的顺序相同。

四、原型

        每个JavaScript对象都有一个与之关联的原型对象。原型对象是一个包含了可以由其他对象共享的属性和方法的对象。这意味着,当一个对象试图访问一个它自身没有的属性或方法时,JavaScript会查看该对象的原型对象,看看那里是否有这个属性或方法。这种机制使得JavaScript能够实现继承和多态,提高代码的复用性和扩展性。

        以后我们创建构造函数时,可以将这些对象共有的属性和方法,统一添加到构造函数的原型对象中,这样不用分别为每一个对象添加,也不会影响到全局作用域,就可以使每个对象都具有这些属性和方法了。

例如:

// 创建一个Person构造函数  
function Person(name, age) {  
    this.name = name;  
    this.age = age;  
  }  
    
  // 在Person的原型上添加一个greet方法  
  Person.prototype.greet = function() {  
    console.log("Hello, my name is" + this.name + "and I am" + this.age + "years old.");
  };  
    
  // 创建Person对象  
  var person1 = new Person('Alice', 30);  
  var person2 = new Person('Bob', 25);  
    
  // 调用继承自原型的greet方法  
  person1.greet(); // 输出: Hello, my name is Alice and I'm 30 years old.  
  person2.greet(); // 输出: Hello, my name is Bob and I'm 25 years old.

原型链

        当访问一个对象的属性或方法时,如果该对象本身没有该属性或方法,JavaScript引擎会沿着原型链向上查找,直到找到对应的属性或方法,或者遍历到原型链的顶端(通常是null或Object.prototype)。通过原型链,可以实现属性和方法的共享,避免重复创建和占用内存,从而提高代码的复用性和性能。

        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值