当前位置: 首页 > news >正文

深入学习之函数执行2

AFTER YOU  23:40:56
  function fn() {
           var i = 10;
         return function (n) {
              console.log(n + (++i));
        }
     }
       var f = fn();
       f(10);//21
       f(20);//32
       fn()(10);//->先执行fn返回一个小的函数,然后把小的函数紧接着在执行,并且给n传递参数值为10
     fn()(20);
VM4161:4 21
VM4161:4 32
VM4161:4 21
VM4161:4 31

fn()()使用的外部的i会被销毁
外部有人使用就不销毁
不销毁和暂时不销毁最终销毁(没人引用了)

  //1、看函数执行的时候,函数名之前是否有".",有的话,"."前面是谁this就是谁,没有的话this都是window
    //2、自执行函数中的this永远是window
    //3、给元素的某一个事件绑定方法,当事件触发方法执行的时候,方法中的this是当前的元素

var num = 2;
    var obj = {
        num: 3,
        fn: (function (num) {
            this.num *= 2;
            num += 1;
            var num = 3;
            return function () {
                this.num *= 2;
                num += 2;
                console.log(num);
            }
        })(num)//->此处是把全局变量num的值2传递给自执行函数中的形参,如果想传递的是obj下的num属性值3,需要这样写:obj.num
    };
    var fn = obj.fn;
    fn();//->5
    obj.fn();//->7
    console.log(window.num, obj.num);//->8、6


this要看执行对象

相关文章:

  • 使Java代码可移植之一
  • 深入学习之原型和原型模式
  • 深入学习之求数组中最大值和最小值
  • 使Java代码可移植之二
  • 深入学习之回流和重绘
  • henson.midp.Float浮点类介绍
  • 深入学习之css三角形
  • J2ME中的字符串管理和多语言支持
  • 深入学习之图片延迟加载
  • 深入学习之加载机制
  • 封装MathFP和FloatBox
  • 深入学习之事件兼容2 以及二级事件
  • 看了网友Roy的评论,研究了一下用filter来解决Struts中文乱码的问题!
  • 深入学习之h5 以及媒体查询
  • 保护自己的MIDlet程序之二:TimeProtector
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • exif信息对照
  • iOS 颜色设置看我就够了
  • JavaScript-Array类型
  • Java到底能干嘛?
  • JS函数式编程 数组部分风格 ES6版
  • js作用域和this的理解
  • Just for fun——迅速写完快速排序
  • mysql_config not found
  • Mysql5.6主从复制
  • NSTimer学习笔记
  • python 装饰器(一)
  • SpriteKit 技巧之添加背景图片
  • Web标准制定过程
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 坑!为什么View.startAnimation不起作用?
  • 力扣(LeetCode)965
  • 聊一聊前端的监控
  • 排序算法之--选择排序
  • 前嗅ForeSpider采集配置界面介绍
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 我感觉这是史上最牛的防sql注入方法类
  • 因为阿里,他们成了“杭漂”
  • 1.Ext JS 建立web开发工程
  • zabbix3.2监控linux磁盘IO
  • 关于Android全面屏虚拟导航栏的适配总结
  • 如何正确理解,内页权重高于首页?
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​linux启动进程的方式
  • ​Python 3 新特性:类型注解
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)JAVA使用POI操作excel
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (规划)24届春招和25届暑假实习路线准备规划
  • . NET自动找可写目录
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET 设计模式—简单工厂(Simple Factory Pattern)