news 2026/7/26 23:59:50

JavaScript函数与对象实战精要

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JavaScript函数与对象实战精要

好的,我们将围绕JavaScript 核心特性,从函数对象进行深度应用实战讲解,帮助您系统掌握关键概念。以下内容结构清晰,逐步深入:


一、函数:JavaScript 的基石

函数是 JavaScript 的一等公民,支持多种特性:

  1. 函数声明与表达式

    // 函数声明 function greet(name) { return `Hello, ${name}!`; } // 函数表达式(箭头函数) const add = (a, b) => a + b;
  2. 高阶函数
    函数可作为参数或返回值:

    // 回调函数 [1, 2, 3].map(x => x * 2); // [2, 4, 6] // 返回函数(闭包) function createMultiplier(factor) { return num => num * factor; } const double = createMultiplier(2); double(5); // 10

二、对象:封装与复用

对象是属性的集合,支持动态操作:

  1. 对象字面量与构造函数

    // 字面量 const user = { name: "Alice", age: 28, greet() { console.log(`Hi, I'm ${this.name}`); } }; // 构造函数(ES5) function Person(name, age) { this.name = name; this.age = age; } Person.prototype.greet = function() { console.log(`Hi, I'm ${this.name}`); };
  2. 原型链与继承
    JavaScript 通过原型实现继承:

    // ES6 class 语法(原型语法糖) class Student extends Person { constructor(name, age, major) { super(name, age); this.major = major; } study() { console.log(`${this.name} is studying ${this.major}`); } }

三、深度应用:函数与对象的融合

  1. 工厂函数
    用函数动态生成对象:

    function createUser(name, role) { return { name, role, isAdmin() { return this.role === "admin"; } }; }
  2. 闭包实现私有变量
    通过函数作用域隐藏数据:

    function createCounter() { let count = 0; // 私有变量 return { increment() { count++ }, getCount() { return count } }; } const counter = createCounter(); counter.increment(); counter.getCount(); // 1
  3. 对象方法的高级应用
    使用call/apply/bind动态绑定this

    const car = { brand: "Tesla" }; function showDetail(model) { console.log(`${this.brand} ${model}`); } showDetail.call(car, "Model 3"); // Tesla Model 3

四、综合实战:购物车系统

结合函数与对象实现核心逻辑:

class ShoppingCart { constructor() { this.items = []; } addItem(item) { this.items.push(item); } calculateTotal() { return this.items.reduce((total, item) => total + item.price, 0); } applyDiscount(discountFn) { // 高阶函数应用 const total = this.calculateTotal(); return discountFn(total); } } // 使用 const cart = new ShoppingCart(); cart.addItem({ name: "Book", price: 20 }); cart.addItem({ name: "Pen", price: 5 }); // 定义折扣函数 const tenPercentOff = total => total * 0.9; console.log(cart.applyDiscount(tenPercentOff)); // 22.5

五、关键总结

特性应用场景
高阶函数回调、策略模式、延迟执行
闭包私有变量、模块封装
原型链继承复用、共享方法
this动态绑定对象方法复用、事件处理

通过以上实战,您已掌握从函数基础对象高级应用的核心链路。建议结合具体项目深化理解!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/24 6:53:56

小白到专家:大模型学习指南与应用场景解析

文章介绍了AI大模型的基本概念、发展历程、分类和应用实践。大模型是拥有数十亿至数千亿参数的机器学习模型,通过海量数据训练展现类人能力。其发展经历了萌芽期、沉淀期和爆发期,主要分为语言、视觉和多模态大模型。大模型已在自然语言处理、创意产业和…

作者头像 李华
网站建设 2026/7/18 21:43:37

基于MATLAB的局部特征尺度分解(LCD)实现与优化

一、LCD核心算法实现步骤信号预处理 去噪:采用小波阈值去噪或EMD去趋势项归一化:将信号幅值映射到[0,1]区间极值点检测 function [max_peaks, min_peaks] find_extrema(x)n length(x);max_peaks [];min_peaks [];for i 2:n-1if x(i) > x(i-1) &a…

作者头像 李华
网站建设 2026/7/17 5:34:33

<span class=“js_title_inner“>结直肠癌五年生存率为何骤降?bulk+单细胞+空间转录组整合揭秘肿瘤微环境“变脸”全过程(附全套复现代码)</span>

为什么结直肠癌的五年生存率在早期接近90%,而一旦进展到IV期,这个数字会断崖式下跌到仅14%左右? 2023年4月,Gastroenterology Report 杂志发表了中山大学附属第六医院兰平教授团队的研究,该研究利用单细胞和空间转录组…

作者头像 李华
网站建设 2026/7/21 18:10:43

Python中的PO模型的实例

1.PO模型在自动化中经常会被使用到,一下就是PO模型的具体实例2.实现BasePagefrom selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains #鼠标操作class BasePage():BasePage封装所有界面都公用的方法。例如driver,find_el…

作者头像 李华