昼猫笔记 JavaScript -- 闭包】的更多相关文章

  本次主要内容是 闭包 阅读时间: 约 3分钟 记得点个赞支持支持我哦 初步了解 先看下代码,输出结果是多少? function fn1 () { var a = 2 function fn2 () { console.log(a) } } fn1() 如何产生闭包呢? 当一个嵌套的内部(子)函数引用了嵌套的外部(父)函数的变量(函数)时, 就产生了闭包 那闭包到底是什么呢 理解一: 闭包是嵌套的内部函数(绝大部分人) 理解二: 包含被引用变量(函数)的对象(极少数人)(倾向于第二种) 我们可…
简单理解 var zm = function (x) { var code = 'bb' return code }; 学过js的老哥们都知道,当这样简单的一个函数进入浏览器,浏览器开始解释代码,会将window分两个模块:存储模块.执行模块.存储模块,找到所有的var和function关键字,给这些变量添加内存地址执行模块,代码从上到下执行,遇到变量就回去存储模块查找是否有该变量如果有该变量,就看是否赋值,如果赋值了就是后面的值,没有赋值就是undefined如果没找到 结果就是xxx is…
  本篇主要内容:异步.定时器引发的思考 预计阅读时间:8分钟 了解 我们都知道在js中定时器有两种  setInterval()  . setTimeout()   setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式.方法会不停地调用函数,直到  clearInterval()  被调用或窗口被关闭.  setTimeout() :在指定的毫秒数后调用函数或计算表达式. 那么问题来了,定时器真的是定时执行的吗? 刚开始我认为定时器肯定是定时执行的啊,要不然怎么会叫做…
本文内容搬运自公众号 原文链接 本文主要内容:面向对象 预计阅读时间:6分钟 面向对象的方式 单例模式(字面量定义) var obj = {} 类的实例 var obj = new Object() 工厂创建 构造函数 扮演了三种角色,(普通函数.普通对象.类) 面向对象相关问题 构造函数里的属性怎么看?看this,谁前面有this谁就是属性 function Zhoumao(name, age) { var name = '昼猫' this.name = name; this.age = ag…
昼猫笔记--给你带来不一样的笔记 不止是笔记 更多的是思考 大家好,我是一只来自喵星的前端初学者,由于我们喵星人科技较为落后,昼猫从今天开始带着使命来到地球学习前端知识. 从今天开始,猫猫我就从JavaScript开始,之后我会完善HTML+CSS的知识点 今天这篇文章主要是向大家介绍下什么是JavaScript,之后的文章中我会详细的讲解到每个知识点哦(1~2天一更) 首先咱们先了解下JavaScript javaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持…
继承 由于js不像java那样是真正面向对象的语言,js是基于对象的,它没有类的概念. 所以,要想实现继承,可以用js的原型prototype机制或者用apply和call方法去实现,还有就是js可以通过构造函数和原型的方式模拟实现类的功能. 另外,js类式继承的实现也是依靠原型链来实现的. 继承方法 call继承:子类继承父类,将父类的私有属性继承为子类的私有属性 function Xx() { this.name = '小欣欣' }; Xx.prototype.age = 18; funct…
昼猫笔记--给你带来不一样的笔记 不止是笔记 更多的是思考 Hello,大家好,昼猫,今天来加深下DOM 什么DOM呢?它的全称叫 Document Object Model 通过全称可以知道它是 文档对象模型,通过DOM可以来任意来修改网页中各个内容 是不是很牛掰,通过学习它可以达到一些网页的特效 DOM简介 文档 文档指的是网页,一个网页就是一个文档 对象 对象指将网页中的每一个节点都转换为对象 , 转换完对象以后,就可以以一种纯面向对象的形式来操作网页了 模型 模型用来表示节点和节点之间的…
1. 什么是闭包? 参考MDN. 2. 闭包的使用示例 2.1 示例1 <div>1</div> <div>2</div> <div>3</div> <script> var nodes = document.getElementsByTagName('div'); for (var i = 0, len = nodes.length; i < len; i++) { /* 注意这里 */ (function (i)…
此文都是大牛们关于闭包的观点,在此只是总结. 闭包应用的两种情况即可——函数作为返回值,函数作为参数传递. 1 深入理解javascript原型和闭包 判断一个变量是不是对象非常简单.值类型的类型判断用typeof,引用类型的类型判断用instanceof. 对象里面的一切都是属性,只有属性,没有方法.方法也是一种属性.因为它的属性表示为键值对的形式. javascript中的对象可以任意的扩展属性. var obj={ a : 10, b : function(x){ return this.…
一.this易错分析 在学习闭包的时候,有一个概念this很重要,关于this的理解,下面3种情况:this指向谁? fn.call(obj1); obj2.fn() fn() 答案是obj1 obj2 window 判断this的指向有3条规则: 执行函数的过程中肯定存在两方,一方是调用函数的人caller,一方是被调用的人callee,callee永远是函数fn,caller遵循以下的规范: fn.call(xxx) fn.apply(xxx)的时候,this永远指向xxx ooo.fn()…