首页 > 其他分享 >【JS】自调用函数怎么用?

【JS】自调用函数怎么用?

时间:2024-08-03 16:24:19浏览次数:17  
标签:怎么 function console log 调用函数 JS var return

自调用函数定义

自调用函数,也称为立即执行函数表达式(IIFE),是一种在定义后立即执行的函数(也就是说不用另外调用执行了)。它的主要目的是创建一个新的作用域,避免全局变量的污染。

优势

  • 可以立即执行,不需要等待其他代码的执行。
  • 创建了新的作用域,可以保护内部的变量和函数不被外部访问,避免全局变量的冲突,实现封装和模块化。

 代码示例

简单的自调用函数

(function() {
  console.log("在这里写代码")
})();

带参数的自调用函数

//函数名和参数写不写都行
(function  函数名(形参) {
  console.log("这里是代码块");
})(实参);


//实例
(function (name) {
  console.log('Hello, ' + name + '!');//Hello, 我是代码客!
})("我是代码客");

返回值的自调用函数

var a = 10;
var b = 20;
var result = (function() {
  var a = 1;//不会影响定义好的全局变量
  var b = 2;
  return a + b;
})();
console.log(result);  // 输出:3
console.log(a + b); // 输出:30

使用自调用函数实现模块化

var MyModule = (function() {
  var privateVar = 'private';
  
  function privateMethod() {
//自调用函数里定义的函数的return
    return 'This is a private method';
  }

  //自调用函数的return
  return {
    publicMethod: function() {
      return privateMethod() + ' Accessed from a public method';
    },
    publicVar: 'This is a public variable'
  };
})();

// 输出:This is a private method Accessed from a public method
console.log(MyModule.publicMethod());  
// 输出:This is a public variable
console.log(MyModule.publicVar);  

标签:怎么,function,console,log,调用函数,JS,var,return
From: https://blog.csdn.net/m0_74662483/article/details/140891969

相关文章

  • 怎么配置一个axios来拦截前后端请求
    首先创建一个axios.js文件导入我们所需要的依赖importaxiosfrom"axios";importElementfrom'element-ui'importrouterfrom"./router";设置请求头和它的类型和地址注意先注释这个url,还没有解决跨域问题,不然会出现跨域//axios.defaults.baseURL="http://loc......
  • 某象滑块js逆向
    ​声明:本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wxa15018601872       本文章未经许可禁止转载,禁止任何修改后二次传播,......
  • Node.js path模块
    在Node.js中,path模块用于处理和转换文件路径。以下是一些常用的path模块方法及其说明:path.basename(path[,ext])返回路径中的最后一部分,即文件名。示例:constpath=require('path');console.log(path.basename('/foo/bar/baz/asdf/quux.html'));//输出:'quux.htm......
  • 深入探究 Vue.js 高级技术:从响应式系统到高效组件设计的实战指南
    这里有一些实用的Vue.js高级示例,涵盖了前面提到的高级知识点,适合在实际项目中应用:1.自定义响应式数据使用Vue3的customRefAPI创建一个自定义的响应式输入框,带有防抖功能。import{customRef}from'vue';functionuseDebouncedRef(value,delay=300){......
  • nodejs使用child_process模块启动(exec和spawn)子线程任务,子进程实例的kill()方法无效的
    以下内容在win10环境下的执行分析(这里就不对进程和线程做区分了):child_process.exec和child_process.spawn启动进程的区别。shell<string>Shelltoexecutethecommandwith.SeeShellrequirementsandDefaultWindowsshell.Default:'/bin/sh'onUnix,process.env.C......
  • JS阻止事件冒泡的方法
    JS事件冒泡在一个对象上触发某类事件(如单击onclick事件),如果此对象定义了此事件的处理程序,此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的......
  • shell获取敏感词接口json数据更新时重启nginx+lua环境、一个逐步删除服务器上文件夹的
    一、shell获取敏感词接口json数据如有更新重启nginx+lua环境    因为工作需要,需要写一个shell脚本获取对应接口的数据(其它管理后台控制的敏感词库)。因为当前平台是nginx+lua脚本,重装加载敏感词需要重启nginx.实现起来也很简单,第一点,需要对获取的json数据进行分析,shell......
  • 直播软件怎么开发,你还在为如何创建线程池发愁吗?
    直播软件怎么开发,你还在为如何创建线程池发愁吗?为什么要使用多线程提高响应速度:对于耗时操作,使用线程可以避免阻塞主线程,提高应用程序的响应速度。实现并行操作:在多CPU系统中,使用线程可以并行处理任务,提高CPU利用率。改善程序结构:将一个既长又复杂的进程分为多个线程,可以使其......
  • 科大讯飞学生机平板怎么样2024 科大讯飞AI学习机T20 值得买吗
    科大讯飞AI学习机T20是一款基于24年AI技术积累的学习工具,致力于为广大学生提供更加智能化、高效的学习体验。该学习机采用了先进的AI技术,通过智能语音识别、自然语言处理等技术手段,实现了AI1对1类人辅导,能够针对不同学生的学习需求和水平,提供个性化的学习方案。不仅如此,科大讯飞A......
  • Day16_1--JSP了解学习之EL表达式语言入门教程
    JSP(JavaServerPages)是一个用于生成动态网页的技术。EL(ExpressionLanguage)是JSP中的一种表达式语言,用于简化JSP页面中的Java代码,使其更易于书写和阅读。下面是对JSPEL表达式语言的简要介绍。1.什么是EL?EL(表达式语言)是JSP2.0引入的一种语言,它提供了一种简单的方法来访......