JS 对象

本文详细介绍了JavaScript中的对象概念,包括对象的创建方式、使用方法、属性和方法的访问等,并探讨了面向对象编程思想在JavaScript中的体现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第8章 对象(Object)

编程思想 : 想把一些生活中做事的经验融入到程序中

面向过程 : 凡是都要亲力亲为,每件事的具体过程都要知道,注重的是过程

面向对象 : 根据需求找对象,所有的事都用对象来做,注重的是结果

面向对象特性 : 继承 , 封装 , 多态(抽象性)

js不是面向对象的语言 , 但是可以模拟面向对象的思想

js是一门基于对象的语言

8.1 什么是对象

一切事物都是对象 ------ 看得见 , 摸得着 , 具体特指的某个东西

现实生活中:万物皆对象,对象是一个具体的事物,一个具体的事物就会有行为和特征。
举例: 一部车,一个手机
车是一类事物,门口停的那辆车才是对象
	特征:红色、四个轮子
	行为:驾驶、刹车


8.2 JavaScript中的对象

JavaScript中的对象其实就是生活中对象的一个抽象
JavaScript的对象是无序属性的集合。
其属性可以包含基本值、对象、数组或函数。
对象就是一组没有顺序的值。
我们可以把JavaScript中的对象想象成键值对,其中值可以是数据和函数。
对象的行为和特征
	特征---属性
	行为---方法

事物的特征在对象中用属性来表示。
事物的行为在对象中用方法来表示。

8.3 如何得到一个对象

  • 字面量方式创建对象 ------------ 一次性对象

    var obj1 = {};//得到一个空对象
    var obj2 = {name:'程序员',age:18};//得到拥有两个属性的对象
    //得到拥有两个属性和一个方法的对象
    var obj3 = {
        name:'程序员',
        age:18,
        fei:function(){
            console.log('哈哈哈!');
        }
    }
  • new Object() 创建对象 (内置构造函数)

    var person = new Object();
    person.name = '李四';
    person.age = 35;
    person.sayHi = function(){
        console.log('Hello,everyBody');
    }
  • 自定义构造函数创建对象

    在执行 var p1 = new Person() 时做了四件事情:

    1. 在内存中开辟空间 , 存储创建的新的对象

    2. 把this设置为当前的对象

    3. 设置对象的属性和方法的值

    4. 把this这个对象返回

    function Person(name, age, job) {
            this.name = name;
            this.age = age;
            this.job = job;
            this.sayHi = function () {
                console.log('Hello,everyBody');
            }
        }
    var p1 = new Person('张三', 22, 'actor');

8.4 this 的指向

JavaScript中的this指向问题,比较复杂,有时候会让人难以捉摸,随着学习的深入,我们会不断接触this,

在学习过程中,我们可以不断总结,最终搞清楚this在何种情况下指向何处……

目前,我们只需要记住以下两点就可以了:

1: 函数如果在某个对象下,this就指向这个对象

2:函数如果被直接调用,this指向window对象

var o1 = {
    name: '程序员',
    f: function () {
        console.log(this.name);
    }
}
o1.f(); // 程序员

 

function f(){
    console.log(this);
}
f();
console.log(window);

8.5 对象的使用

  • 方法及属性的使用

对象.方法名(); //调用对象的方法
对象.属性;   //获取对象的属性
  • 遍历对象的属性

通过for..in语法可以遍历一个对象

var obj1 = {
    name:'小张',
    age : 17,
    sex : '男',
}
​
for(var k in obj1){
    console.log(k);
    console.log(obj1[k]);
}

注意:使用for …in语法,同样可以遍历数组

  • 删除对象的属性

var obj1 = {
    name:'小张',
    age : 17,
    sex : '男',
}
​
console.log(obj1.age); //17
delete obj1.age;  //删除对象中指定的属性
console.log(obj1.age); // undefined

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值