上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

多个内部函数如何根据选泽执行?

[复制链接]
  • TA的每日心情
    无聊
    5 天前
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    4

    主题

    7

    帖子

    17

    积分

    助理工程师

    Rank: 1

    积分
    17
    发表于 2022-2-20 21:32:23 | 显示全部楼层 | 阅读模式
    1油猫币
    <!DOCTYPE html>
    <html lang="en">

    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>

    <body>
        <div id="test">
            <span>
                <button onclick="test()">按钮</button>
            </span>
            <span>
                <input type="checkbox" name="count" value="jia" />
                <input type="checkbox" name="count" value="jian" />
                <input type="checkbox" name="count" value="cheng" />
                <input type="checkbox" name="count" value="chu" />
            </span>
        </div>
    </body>
    <script>

        function test() {
            const count = document.getElementsByName("count");

            let fun = countTest();

            for (let c of count) {

                if (c.value == "jia" && c.checked == true) {
                    alert("我选择了:" + c.value);

                    fun();
                }

                if (c.value == "jian" && c.checked == true) {
                    alert("我选择了:" + c.value);


                }

            }
        }

        function countTest() {

            let i = 1;

            return function jia() {

                let a = i + 1;
                console.log(a);

            }

            // let jia = () => {
            //     let a = i + 1;
            //     console.log(a);

            // }

            return function jian() {

                let b = i - 1;
                console.log(b);

            }

            function cheng() {

                let c = i * 1;
                console.log(c);

            }

            function chu() {

                let d = i / 1;
                console.log(d);

            }

        }


    </script>

    </html>




    如上面例子,我想根据复选框的选择来执行countTest函数里面对应的内部函数,该如何实现?


  • TA的每日心情
    无聊
    2022-4-18 01:37
  • 签到天数: 30 天

    [LV.5]常住居民I

    302

    主题

    2582

    帖子

    2650

    积分

    荣誉开发者

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    2650

    猫咪币纪念章

    发表于 2022-2-20 21:53:25 | 显示全部楼层
    <!DOCTYPE html>
    <html lang="en">

    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>

    <body>
        <div id="test">
            <span>
                <button onclick="test()">按钮</button>
            </span>
            <span>
                <input type="checkbox" name="count" value="jia" />加
                <input type="checkbox" name="count" value="jian" />减
                <input type="checkbox" name="count" value="cheng" />乘
                <input type="checkbox" name="count" value="chu" />除
            </span>
        </div>
    </body>
    <script>
        let i = 1;
        function jia() {
            let a = i + 1;
            console.log(a);

        }
        function jian() {

            let b = i - 1;
            console.log(b);

        }
        function cheng() {

            let c = i * 1;
            console.log(c);

        }
        function chu() {

            let d = i / 1;
            console.log(d);
        }
        function test() {
            const count = document.getElementsByName("count");
            for (let c of count) {

                if ( c.checked == true) {
                    window[c.value]()

                }

            }
        }
    </script>

    </html>
    这样可以吗
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2022-4-18 01:37
  • 签到天数: 30 天

    [LV.5]常住居民I

    302

    主题

    2582

    帖子

    2650

    积分

    荣誉开发者

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    2650

    猫咪币纪念章

    发表于 2022-2-20 22:01:24 | 显示全部楼层
    我好像懂你意思了...你是之前那个用对象封装函数的吗
    如果那样的话,那么用没有任何问题!
    我之前理解错了
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    5 天前
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    4

    主题

    7

    帖子

    17

    积分

    助理工程师

    Rank: 1

    积分
    17
    发表于 2022-2-20 22:26:55 来自手机  | 显示全部楼层
    李恒道 发表于 2022-2-20 22:01
    我好像懂你意思了...你是之前那个用对象封装函数的吗
    如果那样的话,那么用没有任何问题!
    我之前理解错了 ...

    有闭包的写法吗,我想实现类似与Java类.方法的写法,不暴露 jia jian这些函数
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    10

    主题

    315

    帖子

    402

    积分

    荣誉开发者

    Rank: 10Rank: 10Rank: 10

    积分
    402

    活跃会员热心会员突出贡献三好学生猫咪币纪念章中秋纪念章国庆纪念章

    发表于 2022-2-20 22:48:59 | 显示全部楼层
    js也有类的:
    1. class Test {
    2.     constructor() {
    3.         this.i = 1;
    4.     }
    5.     jia() {
    6.         this.i += 1;
    7.         console.log(this.i);
    8.     }
    9.     jian() {
    10.         this.i -= 1;
    11.         console.log(this.i);
    12.     }
    13.     //...
    14. }
    15. const countTest = new Test();
    16. countTest.jia();
    复制代码
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2022-4-18 01:37
  • 签到天数: 30 天

    [LV.5]常住居民I

    302

    主题

    2582

    帖子

    2650

    积分

    荣誉开发者

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    2650

    猫咪币纪念章

    发表于 2022-2-21 09:33:51 | 显示全部楼层
    player 发表于 2022-2-20 22:26
    有闭包的写法吗,我想实现类似与Java类.方法的写法,不暴露 jia jian这些函数 ...

    用cxxjackie哥哥的类感觉就可以
    也可以往函数的property上写一下函数
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表