• 【总结】实现点击累加效果的几种方式对比


    //实现点击累加效果的几种方式对比
    Author:李金涛;Time:2018-1-1(新年新气象,更上一层楼。持续写博客。不断总结优化,博观约取,才能厚积薄发!)
    // 1,利用全局作用域不销毁的原理,把需要累加的变量定义为全局变量。
    //弊端:在项目中为了防止全局变量之间的冲突,我们一般是禁止或者减少使用全局变量。
    // 2,自己形成一个不销毁的私有作用域来保存我们需要累加的变量。
    // (1),用自执行函数包起来;
    // (2),把自执行函数的返回值函数赋值给变量。
    //弊端:有一个不销毁的私有作用域,所以占内存。
    // 3,利用innerHTML既能存取值,也能获取值的原理。每次点击时想到页面取最新的值,累加完后在放回去。
    //弊端:每一次都需要把页面中的内容先取出来,转换成数字然后累加,最后重新放回去。当重新放回去时,浏览器都需要重新渲染。
    // 4,自定义属性存储(推荐):这样就没有作用域那点弊端之说。

    <div id="box">
    <h3>问题:认为杨幂很漂亮的请狂点~~</h3>
    <div id="btn">我非常非常同意以上观点&nbsp;&nbsp;<span id="spanNum">0</span></div>
    </div>
    <style>
    #box{ 300px; margin: 100px auto; }
    #btn{ background-color: #ccc; }
    #spanNum{ color: red; }
    </style>



    <script type="text/javascript">
    var oBtn=document.getElementById("btn");
    var spanNum=document.getElementById("spanNum");
    // 1,利用全局作用域不销毁的原理,把需要累加的变量定义为全局变量。
    // var count=0;
    // oBtn.onclick=function () {
    // count++;
    // spanNum.innerHTML=count;
    // };
    // 弊端:在项目中为了防止全局变量之间的冲突,我们一般是禁止或者减少使用全局变量。

    //2,自己形成一个不销毁的私有作用域来保存我们需要累加的变量。
    // (1),用自执行函数包起来;
    // +function () {
    // var count=0;
    // oBtn.onclick=function () {
    // count++;
    // spanNum.innerHTML=count;
    // };
    // }();
    // (2),把自执行函数的返回值函数赋值给变量。
    // oBtn.onclick=(function () {
    // var count=0;
    // return function () {
    // count++;
    // spanNum.innerHTML=count;
    // };
    // })();//此处易写错,请千万注意;
    // 弊端:有一个不销毁的私有作用域,所以占内存。

    // 3,利用innerHTML既能存取值,也能获取值的原理。每次点击时想到页面取最新的值,累加完后在放回去。
    // oBtn.onclick=function () {
    // spanNum.innerHTML++;//++除了加1,还默认转换成Number
    // spanNum.innerHTML-=(-1);
    // spanNum.innerHTML=spanNum.innerHTML-0+1;
    // spanNum.innerHTML=Number(spanNum.innerHTML)+1;
    // };
    // 弊端:每一次都需要把页面中的内容先取出来,转换成数字然后累加,最后重新放回去。当重新放回去时,浏览器都需要重新渲染。

    // 4,自定义属性存储(推荐):这样就没有作用域那点弊端之说。
    // oBtn.count=0;//count属性初始值为0.
    // oBtn.onclick=function () {//每点击一次在当前值上加1;
    // spanNum.innerHTML=++this.count;
    // };

    </script>
  • 相关阅读:
    反射机制小结
    IO流小节
    C# 利用file打印日志
    JS判断表单内容是否更改过
    input file 样式以及获取选择文件方法集合
    JS判断终端浏览器类型
    Node.js服务的重启与监控
    ASP.NET MVC 与Form表单交互
    JS 更改表单的提交时间和Input file的样式
    My SQL和LINQ 实现ROW_NUMBER() OVER以及Fatal error encountered during command execution
  • 原文地址:https://www.cnblogs.com/ljt1412451704/p/8168437.html
Copyright © 2020-2023  润新知