news 2026/10/13 2:43:13

为什么 cubeTextureLoader 不需要回调函数,gltfLoader 需要回调函数?| 回调函数 | JavaScript | Three.js

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
为什么 cubeTextureLoader 不需要回调函数,gltfLoader 需要回调函数?| 回调函数 | JavaScript | Three.js

目录

  • 一、cubeTextureLoader与gltfLoader对比
  • 二、回调函数
    • 1. 回调函数 命名函数形式
    • 2. 回调函数 匿名函数形式
    • 3. 回调函数 箭头函数形式

同样是Three.js的加载器,为什么cubeTextureLoader不用写回调函数,而gltfLoader需要回调函数呢?
/** * Environment map */constenvironmentMap=cubeTextureLoader.load(['/textures/environmentMaps/0/px.jpg','/textures/environmentMaps/0/nx.jpg','/textures/environmentMaps/0/py.jpg','/textures/environmentMaps/0/ny.jpg','/textures/environmentMaps/0/pz.jpg','/textures/environmentMaps/0/nz.jpg'])scene.background=environmentMap/** * Models */gltfLoader.load('/models/FlightHelmet/glTF/FlightHelmet.gltf',(gltf)=>{gltf.scene.scale.set(10,10,10)gltf.scene.position.set(0,-4,0)gltf.scene.rotation.y=Math.PI*0.5scene.add(gltf.scene)})

一、cubeTextureLoader与gltfLoader对比

cubeTextureLoadergltfLoader
数据介绍cubeTexture 是一种特殊的纹理,由6个2D图像构成,分别对应立方体的六个面。gltf是一种针对3D场景和模型的现代格式,旨在高效地传递和加载3D内容,具有紧凑的文件结构。
加载数据复杂程度cubeTextureLoader 加载6张图片,每张图片都是标准的、浏览器原生支持的图像格式(JPG、PNG等)。整个过程是线性的、可预测的。gltfLoader 加载的 .gltf、.glb文件是一个容器,里面可能包含几何体、材质、动画,以及一个可嵌套多层、相互引用的文件列表。这一过程相对复杂、未知。
返回值cubeTexture实例没有有意义的返回值,gltf.scene等必须通过回调函数调用


Three.js中的加载器与资源管理:构建丰富3D场景的关键

二、回调函数

1. 回调函数 命名函数形式

functiongiveNumber(onNumber){constnumber=42;onNumber(number);}functionprintNumber(value){console.log("结果是"+value);}giveNumber(printNumber);
  1. giveNumber 调用 printNumber,printNumber 作为参数传入。
  2. 在 giveNumber 函数中,声明常数 number,其值为42。onNumber 作为形参,接收传入的 printNumber。onNumber(number) 等价于 printNumber(number)。
  • 哪一个是回调函数? printNumber。
  • 哪一个是宿主函数? giveNumber。
  • 将 printNumber 的调用权交给 giveNumber,这是回调函数的特点之一:控制反转。

2. 回调函数 匿名函数形式

functiongiveNumber(onNumber){constnumber=42;onNumber(number);}giveNumber(function(value){console.log("结果是"+value);})

3. 回调函数 箭头函数形式

functiongiveNumber(onNumber){constnumber=42;onNumber(number);}giveNumber((value)=>{console.log("结果是"+value);})

Javascript: 带名,匿名,箭头函数重要区别

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

LBM模拟多孔介质自发渗吸:水与空气的孔隙尺度奇妙交互

第一次在计算流体模拟里看到水相前缘像钻迷宫一样穿过随机孔隙、把空气挤成一串串气泡的时候,我意识到格子玻尔兹曼方法(LBM)下的自发渗吸模拟,远比教材上那张经典的Lucas-Washburn曲线要热闹得多。孔隙喉道里的弯月面一会儿加速突…

作者头像 李华
网站建设 2026/10/13 2:42:15

Upscayl 免费 AI 图像放大:5 分钟出第一张图

Upscayl 免费 AI 图像放大:5 分钟出第一张图 【免费下载链接】upscayl 🆙 Upscayl - #1 Free and Open Source AI Image Upscaler for Linux, MacOS and Windows. 项目地址: https://gitcode.com/GitHub_Trending/up/upscayl Upscayl 是一款免费开…

作者头像 李华
网站建设 2026/10/13 2:41:01

本地离线编辑器:Mermaid 本地编辑器从零到可用的完整指南

本地离线编辑器:Mermaid 本地编辑器从零到可用的完整指南 【免费下载链接】mermaid Generation of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid M…

作者头像 李华
网站建设 2026/10/13 2:40:24

Zerolang std.path 模块实战指南:零分配、纯词法的路径处理 API

【免费下载链接】zerolang The Programming Language for Agents 项目地址: https://gitcode.com/gh_mirrors/zero54/zerolang 点击查看 免费下载 导读 std.path 是 Zerolang 标准库中负责词法(lexical)路径处理的模块,它不访问…

作者头像 李华