zoukankan      html  css  js  c++  java
  • 通过经典题目来理解多种闭包实现方式

    需求:生成十个按钮,内容分别是1~10,点击每个按钮输出当前的序号,即点击1输出1。

    看不懂,先留着。

    原:http://blog.csdn.net/simoniter/article/details/52515938

    for (var i = 1; i <= 10; i++) {
        var doc = document.createElement('button');
        doc.innerHTML = i;
    
        //错误写法
         doc.onclick = function() {
           console.log(i);
         }
    
        //方法一
        // doc.onclick = function() {
        //     console.log(this.toString());
        // }.bind(i);
    
        //方法二
        // doc.onclick = function (x) {
        //   return function () {
        //     console.log(x);
        //   }
        // }(i);
    
        //方法三
        // doc.onclick = function() {
        //   var x= i;
        //   return function () {
        //     console.log(x);
        //   }
        // }()
    
        //方法四 arguments.callee指向匿名函数自身,此方法系统消耗最小
        // (doc.onclick = function() {
        //   console.log(arguments.callee.x);
        // }).x = i;
    
        //方法五
        // doc.dataset.value = i;
        // doc.onclick = function(){
        //   console.log(this.dataset.value);
        // };
        document.body.appendChild(doc);
    }
  • 相关阅读:
    设置装订线
    设置页边距
    查看压缩文件的信息
    格式化3
    格式化2
    条件格式化1
    单独设置奇偶页的页眉页脚
    方法重写注意点
    super注意点
    稀疏数组的压缩和还原
  • 原文地址:https://www.cnblogs.com/daysme/p/6555877.html
Copyright © 2011-2022 走看看