JS宏进阶:函数、对象和类(二)

上一节中,我们加深了对JS中函数的理解。在本章中将讲解JS编程中的核心概念——对象,它主要用于组织和封装相关的数据和功能。对象是由属性和方法组成的,其中,属性是指对象的状态;方法属于对象的行为,定义可执行的操作。

一、对象的基本概念

· 属性:对象的属性用于存储数据。例如,一个人的姓名、年龄、性别等。

· 方法:对象的方法用于定义可以执行的操作。例如,一个人的“说话”或“走路”动作。

二、创建对象

在JavaScript中,有多种创建对象的方法:

1、对象字面量:使用花括号 { } 创建对象,是最常用和简便的方法。

const person = {
    name: 'John',
    age: 30,
    greet: function() {
        console.log('Hello, my name is ' + this.name);
    }
};

其中,name与age是对象person的属性,greet是对象person中的方法,执行打招呼这个动作。

2、使用new Object( )构造函数创建对象。

const person = new Object();
person.name = 'John';
person.age = 30;
person.greet = function() {
    console.log('Hello, my name is ' + this.name);
};

首先通过 new Object( )这一构造函数创建一个空对象person,随后给对象person添加属性name和age;添加方法greet。

3、构造函数:用于创建具有相似属性和方法的多个对象实例。

function Person(name, age) {
    this.name = name;
    this.age = age;
    this.greet = function() {
        console.log('Hello, my name is ' + this.name);
    };
}

const person1 = new Person('John', 30);
const person2 = new Person('Jane', 25);

上述通过向构造函数Person中传递参数,创建了两个不同的对象(可以理解成两个不同的人,姓名和年龄都不一样,执行打招呼的动作时,自我介绍就不一样)。

4、Object.create( ):使用现有对象作为原型,创建一个全新的对象。

const person = {
    greet: function() {
        console.log('Hello, my name is ' + this.name);
    }
};

const person1 = Object.create(person);
person1.name = 'John';
person1.greet(); // 输出: Hello, my name is John

在原对象person中是没有name这一属性的,也就是说 this.name = undefined。然而,使用Object.create方法,以原来的对象作为原型,创建了一个新对象person1, 再为他添加一个name属性,此时的this.name就是你添加的属性值。

5、ES6 类:提供更接近传统面向对象编程的语法。

class Person {
    //构造函数
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    greet() {
        console.log('Hello, my name is ' + this.name);
    }
}

const person = new Person('John', 30); //实例化
person.greet(); // 输出: Hello, my name is John

在ES6语法中JS引入了class关键字和类的概念,是一种比较传统的写法。其结构与c++、java类似。关于类的概念,后续章节中会详细阐明。

三、访问对象中的属性和方法

1、点属性访问

const person = {
    name: 'John',
    age: 30,
    greet: function() {
        console.log('Hello, my name is ' + this.name);
    }
};

console.log(person.name); // 输出: John
person.greet(); // 输出: Hello, my name is John

通过 对象.属性名称 的方式访问对象中的属性,如上述代码中的person.name,就是获取person对象中name属性的值。

2、方括号访问属性

const person = {
    name: 'John',
    age: 30,
    greet: function() {
        console.log('Hello, my name is ' + this.name);
    }
};

const propName = 'name';
console.log(person[propName]); // 输出: John

3、通过对象的结构访问

const person = {
    name: 'John',
    age: 30
};

const { name, age } = person;
console.log(name); // 输出: John
console.log(age); // 输出: 30

4、keys与entries

const person = {
    name: 'John',
    age: 30
};

const keys = Object.keys(person); // 结果是: ['name', 'age']
const entries = Object.entries(person); // 结果是: [['name', 'John'], ['age', 30]]

四、对象的应用实例

function MyObject() {
    this.readWorkbook = function(path) {
        const wb = Workbooks.Open(path);
        const data = wb.Sheets(1).Range("A1").CurrentRegion.Value2;
        wb.Close();
        return data;
    }
}

function main() {
    const mo = new MyObject();  //实例化
    let data = mo.readWorkbook(你的路径);
}

上述是定义一个构造函数,在内部定义一个实例方法来获取工作簿中的数据。随后在主方法中电工用MyObject中的实例方法readWorkbook。

五、总结

  • 对象:是JavaScript中用于组织和封装数据和功能的基本单位。
  • 属性:存储对象的状态。
  • 方法:定义对象的行为。
  • 创建对象:可以使用对象字面量、new Object()、构造函数、Object.create() 和 ES6 类。
  • 访问属性和方法:使用点属性访问器、方括号属性访问器、对象结构、Object.keys() 和 Object.entries()

通过理解和应用对象的概念,可以更有效地组织和管理JavaScript宏编程中的代码和数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jackispy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值