首页 > 其他分享 >10分钟白话call、apply、bind八股文

10分钟白话call、apply、bind八股文

时间:2025-01-10 10:55:49浏览次数:1  
标签:10 bind cat tiger 参数 apply call

主题:用最简单,通俗白话解说。

目标1:学好一个call小目标,另外2个旁通 so easy

正题入口:

作用1:call 函数的调用 意思是函数的方法 实践出真知:
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>call、apply、bind八股文-白话文解释</title>
    </head>
    <body>
        <script>
            function tiger() {
                console.log('我是一只老虎 只吃肉')
            }
            //验证:函数的调用 输出我是一只老虎 只吃肉
            tiger.call()
        </script>
    </body>
</html>

输出:

 

作用2:改变this的身份 (斗转星移,移花接木) 实践出真知:
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>call、apply、bind八股文-白话文解释</title>
    </head>
    <body>
        <script>
            function tiger() {
                console.log('我是谁', this)
                console.log('我是一只老虎 只吃肉,我的师傅是' + this.name)
            }
            function cat() {
                this.name = '猫'
            }
            //函数的调用
            //  输出:我是一只老虎 只吃肉,我的师傅是
            tiger.call()

            //作用2:改变this的指向和身份 (斗转星移,移花接木)
            // 输出:我是一只老虎 只吃肉,我的师傅是cat 说明tigger里面的this已经是cat
            tiger.call(cat)
        </script>
    </body>
</html>

输出:

 

作用3:改变this的身份 (斗转星移,移花接木) 实践出真知:
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>call、apply、bind八股文-白话文解释</title>
    </head>
    <body>
        <script>
            function tiger(par1) {
                console.log('我是一只老虎 只吃肉,我的师傅是' + this.name + '---参数:' + par1)
            }
            function cat() {
                this.name = '猫'
            }

            //作用3:第一个逗号后面是参数
            // 输出:我是一只老虎 只吃肉,我的师傅是cat---参数:我是参数
            tiger.call(cat, '我是参数')
        </script>
    </body>
</html>

输出

 问题1来了?

如果要传递第2个参数,甚至多个参数呢?

不买机关  

tiger.call(cat, '我是参数',"参数2","参数3","参数4","参数N")

问题2来了?

如果参数很多,我想优雅更好的写法,聪明你在想有其他的办法呢,毕竟我们是有dream 、追求的人

不买机关 我的兄弟apply闪亮登场了,你看到我和call的区别了吗?

tiger.apply(cat, ['参数1', '参数2', '参数3', '参数4'])
百科:apply只接受2个参数 

休息2分钟...........................

最后一个bind老表, 姗姗来迟上台,蓦然回首,bind却在灯火阑珊处,有了call,兄弟,怎么还有老表呢?。现在政策截止2025是开发3胎了。

言归正传:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>call、apply、bind八股文-白话文解释</title>
    </head>
    <body>
        <script>
            function tiger(par1) {
                console.log('我是一只老虎 只吃肉,我的师傅是' + this.name + '---参数:' + par1)
            }
            function cat() {
                this.name = '猫'
            }

            //tiger.call(cat, '参数1') 等价于 ,其他一模一样
            var bindObj = tiger.bind(cat, '参数1')
            bindObj()
        </script>
    </body>
</html>

 专业术语:call是立即执行函数方法,bind先缓存起来(备用,备胎),待有需要用到在调用。

10分钟时间过完了,今天的故事白话文到此为止谢幕。下一站,下一篇在哪呢?

用通俗话记录通俗的语言,讲解内心的语言的故事,

如果对你有帮助,能加深你的理解,也证明我的描述语言组织表达及格。 

标签:10,bind,cat,tiger,参数,apply,call
From: https://www.cnblogs.com/y112102/p/18663583

相关文章

  • IEC104的复位进程与心跳机制详解
    IEC104规约作为网络通信规约,广泛应用于厂站与配网主站之间的通信。在IEC104规约中,复位进程和心跳机制是确保通信稳定性和可靠性的重要环节。复位进程主要用于某些特殊情况下需要终端重启,一般用于数据重置;而心跳机制则用于检测通信链路的健康状态,防止因长时间无数据传输而导致的......
  • CefSharp.WinForms指定了低版本108.4.130,可是生成后的dll版却是121.3.7.0
    问题:CefSharp.WinForms指定了低版本108.4.130 生成的libcef.dll版本却是121.3.7.0,  分析:之前有指定版本121.3.7.0并生成过。怀疑用的是之前的版本,然后之前的版本的缓存在本地的哪个位置。于是删除项目底下packages\CefSharp.WinForms.108.4.130packages\CefSharp.Comm......
  • 题解:CF1031F Familiar Operations
    传送门Solution之前有遇到类似的题,第一步先考虑转化操作和问题。对于每个数质因数分解成\(\prod{p_i^{\alpha_i}}\),我们所需要的只有\(\alpha_i\),因为只要求因子个数相同。记其为\(S_i=\{\alpha_1,\alpha_2,\dots,\alpha_k\}\),其中\(\alpha_1\geq\alpha_2\geq\dots......
  • 解决 PbootCMS IP 黑名单只能填写 10 多条 IP 地址的问题
    在使用PbootCMS的IP黑名单功能时,如果发现只能添加10多条IP地址,多了保存不了,通常是因为 ay_config 表中存储IP黑名单的字段长度有限。通过修改数据库表结构,可以增加该字段的长度,从而支持更多的IP地址。以下是详细的解决步骤:一、问题分析字段长度限制:ay_config......
  • 在使用 PbootCMS 的 IP 黑名单功能时,如果发现只能添加 10 多条 IP 地址,多了保存不了,通
    1.备份数据库在进行任何数据库操作之前,请务必备份数据库,以防数据丢失。mysqldump-uyour_username-pyour_database_name>backup.sql2.登录数据库管理工具使用phpMyAdmin或其他数据库管理工具登录到您的MySQL数据库。3.修改 ay_config 表结构找到 ay_conf......
  • P1080 [NOIP2012 提高组] 国王游戏
    P1080[NOIP2012提高组]国王游戏题目恰逢H国国庆,国王邀请\(n\)位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这\(n\)位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的......
  • WiFi+4G摄像头拍照图传模块(夜视2K高清1080P)-基础功能-连接wifi路由器和开无线热点
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/product/audioCamera.html"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p> 说明这节测......
  • [20250109]dbms_xplan.display_cursor+peeked_binds无法查看绑定变量值.txt
    [20250109]dbms_xplan.display_cursor+peeked_binds无法查看绑定变量值.txt--//在我使用自己写的dpc.sql脚本中我会加入peeked_binds参数查看绑定变量值,但是有时候会遇到无法查看的情况。--//以前自己很少关注这个细节,应该有别的途径获取绑定变量值,最近在优化一条sql语句正好遇到,......
  • [20250109]19c使用or_expand提示遇到的问题.txt
    [20250109]19c使用or_expand提示遇到的问题.txt--//生产系统使用19c,在使用or_expand提示时遇到的问题,在测试环境演示并做分析。1.环境:1.环境:SCOTT@book01p>@ver2==============================PORT_STRING                  :x86_64/Linux2.4.xxVERSION......
  • [20250109]19c使用or_expand提示遇到的问题2.txt
    [20250109]19c使用or_expand提示遇到的问题2.txt--//上午在21c下测试使用or_expand提示,生产系统遇到要复杂的多,测试复杂的例子是否可以使用。1.环境:SCOTT@book01p>@ver2==============================PORT_STRING                  :x86_64/Linux2.4.xxVE......