javascript中的 object 和 function小结

让我来为你详细讲解"JavaScript中的Object和Function小结"。

JavaScript中的Object

在JavaScript中,对象是一种复合数据类型,可以把它看做是多个属性的集合。对象的属性可以是基本数据类型,如字符串、数字等,也可以是其他对象以及函数。通过点(.)或中括号([])语法,可以访问和修改对象的属性。

例如,我们可以创建一个名为person的对象,并为其定义name和age属性:

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

可以通过点语法或中括号语法来访问对象中的属性:

console.log(person.name); // 输出: John
console.log(person['age']); // 输出: 30

我们也可以使用for-in循环来迭代对象的属性:

for (let prop in person) {
  console.log(prop + ':' + person[prop]);
}

在上述代码中,变量prop存储了person对象的属性名,person[prop]存储了对应属性的值。

另一种创建对象的方式是使用构造函数。例如,我们可以创建一个名为Person的构造函数,该函数可以用于创建person对象的实例:

function Person(name, age) {
  this.name = name;
  this.age = age;
}

let person = new Person('John', 30);

在上述代码中,我们使用new关键字创建了Person的新实例,并将其赋值给变量person。此时,person对象就具有了name和age属性,并且这些属性的值分别为'John'和30。使用构造函数创建对象的好处在于,我们可以使用相同的属性声明逻辑来创建多个对象的实例。

JavaScript中的Function

JavaScript中的函数也是第一类对象,这意味着函数可以像普通的对象一样,赋值给变量、传递给其他函数以及从函数中返回。因此,函数在JavaScript中被广泛地用作回调函数、事件处理程序和构造函数等。

函数的声明可以使用function关键字或者函数表达式。例如,我们可以创建一个名为hello的函数:

function hello(name) {
  console.log('Hello ' + name + '!');
}

hello('world'); // 输出: Hello world!

另一种创建函数的方式是使用匿名函数表达式:

let greeting = function(name) {
  console.log('Hello ' + name + '!');
}

greeting('world'); // 输出: Hello world!

在上述代码中,变量greeting存储了函数表达式所创建的函数对象。我们可以像使用其他对象一样,将greeting函数作为参数传递给其他函数,或者像普通函数一样,使用圆括号调用它。

函数在JavaScript中也可以具有属性。例如,我们可以在函数中创建属性,来记录函数被调用的次数:

function hello(name) {
  hello.count++;
  console.log('Hello ' + name + '!');
}

hello.count = 0;

hello('world'); // 输出: Hello world!
console.log(hello.count); // 输出: 1

在上述代码中,hello函数具有一个名为count的属性,用于记录函数被调用的次数。

示例一

下面是一个实际例子,展示如何使用对象和函数来实现一个计算器。

let calculator = {
  value: 0,
  add: function(num) {
    this.value += num;
  },
  subtract: function(num) {
    this.value -= num;
  },
  multiply: function(num) {
    this.value *= num;
  },
  divide: function(num) {
    this.value /= num;
  }
};

calculator.add(5);
calculator.subtract(2);
calculator.multiply(3);
calculator.divide(4);
console.log(calculator.value); // 输出: 3.75

在上述代码中,我们创建了一个名为calculator的对象,并为其定义了四个方法(add、subtract、multiply、divide),用于计算器的加、减、乘、除操作。在每个方法中,this指向了calculator对象,因此可以访问和修改其value属性。我们在调用对象的方法时,就可以像使用普通函数一样,将其参数传递给相应的方法。

示例二

下面是一个更为高级的示例,展示如何在函数中使用闭包变量来实现一个计数器。

function makeCounter() {
  let count = 0;

  function counter() {
    count++;
    console.log(count);
  }

  return counter;
}

let counter = makeCounter();
counter(); // 输出: 1
counter(); // 输出: 2
counter(); // 输出: 3

在上述代码中,我们定义了一个名为makeCounter的函数,这个函数返回了一个名为counter的函数。在返回的函数中,我们使用了闭包变量count,每次调用返回的函数时,count都会增加。这个计数器是在一个函数内部创建的,因此它对外部环境是不可见的。通过这种方式,我们可以封装一个私有计数器,并且只通过返回函数的方式来提供计数器的访问接口。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript中的 object 和 function小结 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • js中关于new Object时传参的一些细节分析

    JS中通过new Object()方式创建对象时,可以传入一个参数来初始化对象属性。本文将介绍new Object()时传入参数的一些细节。 1. new Object()传入一个空对象 当new Object()传入一个空对象时,返回的对象与直接使用对象字面量创建对象的效果一样。 const obj1 = new Object({}); const obj…

    JavaScript 2023年6月10日
    00
  • 史上最全JavaScript常用的简写技巧(推荐)

    史上最全JavaScript常用的简写技巧(推荐) 在JavaScript编写代码时,我们经常需要用到很多语句,例如if语句、for循环、函数等等。这些语句可以通过使用JavaScript的简写技巧来让我们的代码更加简短,更加易读。下面就是一些常用的JavaScript简写技巧。 1. 赋值运算符的简写 1.1 增量与减量 我们可以使用“++”和“–”来实…

    JavaScript 2023年5月18日
    00
  • JS判断数组中是否有重复值得三种实用方法

    下面我详细讲解下“JS判断数组中是否有重复值得三种实用方法”的完整攻略。 方法一:Set对象 利用Set对象可以去除数组中的重复元素,因此,先将原数组利用Set对象去重,然后比较去重后的数组长度和原数组长度即可判断原数组中是否有重复元素。 示例代码如下: let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1]; let setArr…

    JavaScript 2023年5月27日
    00
  • Android内存泄漏导致原因深入探究

    Android内存泄漏导致原因深入探究 什么是内存泄漏 内存泄漏指无用的对象仍然存在于内存中,导致可用内存减少,最终影响应用的性能和稳定性。 内存泄漏的原因 静态变量 静态变量被声明为全局变量,即便在Activity销毁后仍然存在于内存中,占用了可用内存。如果在静态变量中存储了Activity对象,这些对象将无法释放,导致内存泄漏。 public class…

    JavaScript 2023年6月10日
    00
  • JS使用cookie实现DIV提示框只显示一次的方法

    JS使用cookie实现DIV提示框只显示一次的方法可以分为以下几个步骤: 判断cookie是否存在 如果cookie不存在,则显示DIV提示框,并设置cookie 如果cookie存在,则不显示DIV提示框 具体步骤如下: 判断cookie是否存在: function getCookie(name) { var arr = document.cookie.…

    JavaScript 2023年6月11日
    00
  • websocket++简单使用及实例分析

    Websocket++简单使用及实例分析 Websocket++是一个C++的WebSocket库,用于实现基于WebSocket协议的网络应用程序。这个库提供了许多的接口和功能,使得程序开发更为简单和高效,同时也支持多种平台和操作系统。本文将详细讲解Websocket++的简单使用及实例分析,帮助读者更好的了解这个库的特点和优势。 Websocket++的…

    JavaScript 2023年5月28日
    00
  • JavaScript生成指定范围的时间列表

    下面我会就“JavaScript生成指定范围的时间列表”的完整攻略进行详细讲解,希望对您有所帮助。 1. 需求分析 在进行编程操作之前,我们首先需要对需求进行分析,弄清楚需要完成的具体目标。在这个需求中,我们需要实现如下功能: 生成指定范围的时间列表,以数组形式返回 可以指定时间间隔 包含起始时间和结束时间 2. 解决方案 有了需求之后,我们可以采用如下方式…

    JavaScript 2023年5月27日
    00
  • java实现app签到功能

    实现App签到功能主要涉及到前端和后端两个方面的开发,其中前端主要负责 UI 设计和用户交互,后端主要负责数据存储和业务逻辑实现。 下面是一些具体的步骤和示例说明: 第一步:设计数据库表 在设计数据库表时,需要考虑到存储哪些数据以及如何进行查询。下面是一个简单的签到记录表: CREATE TABLE check_in_record ( id INT(11) …

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部