javascript匿名函数之立即调用函数

news2024/11/19 17:39:57

今天在看youtube的前端代码时发现了一个很奇怪的写法,从来没见过,代码如下:

(function(e, c, l, f, g, h, k) {
                    var d = window;
                    d.getInitialData = function() {
                        var b = window;
                        b.ytcsi && b.ytcsi.tick("pr", null, "");
                        b = {
                            page: e,
                            endpoint: c,
                            response: l
                        };
                        f && (b.playerResponse = f);
                        g && (b.reelWatchSequenceResponse = g);
                        k && (b.url = k);
                        h && (b.previousCsn = h);
                        return b
                    }
                    ;
                    d.loadInitialData && d.loadInitialData(d.getInitialData())
                }
                )(a.ytPageType, a.ytCommand, a.ytInitialData, a.ytInitialPlayerResponse, a.ytInitialReelWatchSequenceResponse, a.ytPreviousCsn, a.ytUrl);

我印象中的js函数是:

var function_name = function(参数列表) {};

结果既没有函数名,函数屁股后面还跟了一个大括号,看上去像是调用一个函数,但是奇怪的是又没有函数名。

其实上面这种写法叫做立即调用函数表达式(IIFE Immediately Invoke Funtion Expression)

它由两部分组成:匿名函数和调用部分

//匿名函数
(function(args) {
    // your codes
})
//立即调用
(params);

//例如
(function(str) {
    console.log(str);
})("Hello world");

运行结果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/726444.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TensorFlow基础和入门案例

TensorFlow简介 TensorFlow是目前主流深度学习框架之一,其库中几乎包含了所有机器学习和深度学习相关的辅助函数和封装类,官方文档如下图所示。在其框架下做各种神经网络算法的开发可以极大减轻工作量,在入门阶段可以不需要深入理解相关优化…

spring拦截器参数及多拦截器执行顺序讲解

1.拦截器中的参数 2.多拦截器执行顺序 如果全部返回true,则按照流程全部执行 如果3返回false,123的preHandler会执行,123的postHandler都不会执行,但是return为true的2和1的after会执行 如果2返回false 12的preHandler会执行 pos…

sql 模糊查询与查询时间范围 起止时间

上代码 <select id"page" resultType"com.sky.entity.Orders">select * from orders<where><if test"number!null and number!">and number like concat(%,#{number},%)</if><if test"phone!null and phone!&q…

选择排序、归并排序、快速排序

1.选择排序 选择排序算法的实现思路有点类似插入排序&#xff0c;也分已排序区间和未排序区间。但是选择排序每次会从未排序区间中找到最小的元素&#xff0c;将其放到已排序区间的末尾。 Java代码实现如下。 ps&#xff1a;选择排序的最好情况时间复杂度、最坏情况和平均情况…

vue子组件监听不到父组件数据变化;子组件获取不到父组件的异步数据

当父子组件嵌套使用时created 和mounted 生命周期的执行顺序是父created -> 子created -> 子mounted -> 父mounted&#xff0c;但是这只是针对同步代码&#xff0c;当生命周期中有异步接口时&#xff0c;那么就会变成父created未执行完 -> 子created -> 子mount…

web安全php基础_魔术常量__FUNCTION__与__METHOD__的区别

PHP 魔术常量 PHP 向它运行的任何脚本提供了大量的预定义常量。 不过很多常量都是由不同的扩展库定义的&#xff0c;只有在加载了这些扩展库时才会出现&#xff0c;或者动态加载后&#xff0c;或者在编译时已经包括进去了。 有八个魔术常量它们的值随着它们在代码中的位置改…

安装Pytorch及配置Pycharm

PyTorch是一个基于Torch的Python开源机器学习库&#xff0c;用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发&#xff0c;不仅能够 实现强大的GPU加速&#xff0c;同时还支持动态神经网络&#xff0c;这一点是现在很多主流框架如TensorFlow都不支持的。 本文…

Service Computing Frontier Technology Experiment

任务说明 实验算法 空间数据索引RTree&#xff08;R树&#xff09;完全解析及Java实现 - 佳佳牛 - 博客园 (cnblogs.com) SFS 打开堆文件 t相当于一个指针 当指针指到不为空的时候 如果窗口未被占用那么 如果窗口是满的话那么代表完成 如果窗口没有满的话 把他加到窗口上&a…

k8s 第一篇 基础知识

一 k8s 1.1 概念 k8s 是一个能让应用部署到容器中&#xff0c;实现自动部署和管理更加高效 自能化的平台。 也就是说通过k8s&#xff0c;能够进行应用的自动化部署和扩容。 1.2 集群的架构流程 1.3 k8s的核心概念 1.4 k8s 集群规划 从第6集开始看

【分立元件】理解电阻

如果强行将某电压加在电子器件上&#xff0c;那么器件上被迫流过的电流是不可控的&#xff0c;电流具体是多少&#xff0c;是由器件本身的性质决定的。 比如同样的电压加载在导体和绝缘体两端&#xff0c;那么一般流过导体的电流会是大于流过绝缘体的。但要是超高电压下绝缘体…

单点登录SSO==MAXKEY

1-下载安装包安装启动 2-打开教程&#xff0c;里面说的很详细了 3- 测试 不想从这点进去也可以直接匿名打开个窗口直接访问 http://oauth.demo.maxkey.top:9521/demo-oauth/oauth20index.jsp 也会跳转到登录页面&#xff0c;输入账号密码后登录成功 乱输密码的话登录不成功还…

【算法设计与分析】素数测试问题——设计一个拉斯维加斯算法,对于给定的正整数,判断其是否为素数。

目录 一、问题描述二、分析三、运行结果四、代码 一、问题描述 试设计一个素数测试的偏真蒙特卡罗算法&#xff0c;对于测试的整数n&#xff0c;所述算法是一个关于logn的多项式时间算法。结合教材中素数测试的偏假蒙特卡罗算法&#xff0c;设计一个素数测试的拉斯维加斯算法。…

盛最多水的容器(力扣)双指针 JAVA

给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器。 输入&…

Tomcat安装配置及其出错的解决方法

文章目录 一、安装二、进行配置三、解决问题四、验证 一、安装 官网链接: https://tomcat.apache.org/ 1.选择 A r c h i v e s \color{red}{Archives} Archives 2.选择 T o m c a t \color{red}{Tomcat} Tomcat版本 3.在对应的版本中选择相对应的小版本 点击 b i n \color…

海盗船DDR5版本号VER命名规则

从华硕、技嘉、微星的内存QVL中可总结出如下规律 海盗船DDR5版本号命名规则 第一位数字 颗粒厂商 第二位数字 对应产品类型 第三位数字 DIE数 3 美光 01 A 4 三星 43 传统内存 02 B 5 海力士 53 非传统内存 03 C 04 D 05 E 8 …

JAVA线程池分析实现

1、定义线程池 /*** 使用给定的初始参数创建新的 ThreadPoolExecutor对象&#xff0c;就创建了一个线程池* param corePoolSize - 要保留在池中的线程数&#xff0c;即使它们处于空闲状态&#xff0c;若果allowCoreThreadTimeOut设置为ture&#xff0c;那么核心线程在keepAliv…

整理——xilinx FPGA 在线升级

一&#xff1a;xilinx FPGA 在线升级方案&#xff1a;&#xff08;系统搭建&#xff1a;MicroBlaze软核处理器&#xff0c;uart控制器&#xff0c;Axi-lite-user用户通信接口&#xff0c;MIG DDR3控制器&#xff0c;中断控制器等&#xff0c;以太网控制器&#xff09; 1.跑一个…

C#开发的OpenRA游戏之建造物品的窗口10

C#开发的OpenRA游戏之建造物品的窗口10 前面已经分析完成建造物品的过程,从物品进入队列,直到物品按时间进行生产完成。那么生产完成之后,又是怎么样放置到游戏的地图里面的呢?本文就来分析这个问题。 前面可以看到,当物品建造完成时,会在右边的面板上显示建造完成: 在…

类 模板 已经声明为非类 模板

类 模板 已经声明为非类 模板 解决方案 原因是在当前包下&#xff0c;已经定义了AA类 解决方案 更改模板类AA的类名

爬虫入门05——requests中的post请求

爬虫入门05——requests中的post请求 以百度翻译为例&#xff0c;我们如何输入内容后获取翻译后的结果呢 打开百度翻译的界面 右键单击后选择检查 点击网络 在翻译的框内输入内容&#xff0c;就以输入“你好”为例&#xff0c; 点击sug&#xff0c;点击标头&#xff0c…