文档章节

js闭包中的this(匿名函数中的this指向的是windows)

o
 osc_g8254g7s
发布于 2019/08/19 18:03
字数 322
阅读 5
收藏 0

精选30+云产品,助力企业轻松上云!>>>

 

 

 1.普通函数中的this指向的是对象,匿名函数中的this指向的是windows,和全局变量一样

 2.让匿名函数中的this指向对象的两种方法

       可以使用对象冒充强制改变this:call()、apply()

       将this赋值给一个变量,闭包可以访问这个变量

 一、this问题

匿名函数的执行环境具有全局性,因此其this对象通常指向window(当然,在通过call()或者apply()改变函数执行环境的情况下,this就会指向其他对象)

 

为什么匿名函数没有取得其包含作用域(或外部作用域)的this对象呢?

每个函数在被调用时都会自动取得两个特殊变量:this和arguments。内部函数在搜索这两个变量时,只会搜索到其活动对象为止,因此永远不可能直接访问外部函数中的这两个变量。

二、解决方法

(1)把外部作用域中的this对象保存在一个闭包能够访问到的变量里,就可以让闭包访问该对象了。

 

2 可以使用对象冒充强制改变this:call()、apply()

 

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
JavaScript闭包使用姿势指南

[TOC] JavaScript闭包使用姿势指南 引言 闭包就是指能够访问另一个函数作用域的变量的函数,闭包就是一个函数,能够访问其他函数的作用域中的变量,js有一个全局对象,在浏览器下是window,node下...

墨抒颖呀
2019/11/16
0
0
重学JavaScript之匿名函数

注意: 本文章为 《重学js之JavaScript高级程序设计》系列第七章。 关于《重学js之JavaScript高级程序设计》是重新回顾js基础的学习。 欢迎关注 前端公众号【小夭同学】 1. 什么是匿名函数?...

故事胶片
2019/10/25
0
0
javascript无处不在的this

有人的地方就有江湖,有函数的地方就有。而this在不同的环境下,又表现为不同的形式,难免让人有种此this非彼this的疑惑 在java等面向对象的语言中,this指的就是当前对象,而在javascript中...

benqend
2014/12/05
2
0
通过示例学习Javascript闭包

译者按: 在上一篇博客,我们通过实现一个计数器,了解了如何使用闭包(Closure),这篇博客将提供一些代码示例,帮助大家理解闭包。 原文: JavaScript Closures for Dummies 译者: Fundebug 为...

Fundebug
2018/11/21
18
0
JavaScript世界的一等公民 - 函数

简介 在很多传统语言(C/C++/Java/C#等)中,函数都是作为一个二等公民存在,你只能用语言的关键字声明一个函数然后调用它,如果需要把函数作为参数传给另一个函数,或是赋值给一个本地变量,...

i33
2013/03/14
181
0

没有更多内容

加载失败,请刷新页面

加载更多

linux下java环境搭建

1、jdk下载: 官方地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 如下图所示,我这边选择的是红框中的版本 2、压缩包上传至服务器 将下载的压缩包上传...

wc_飞豆
今天
17
0
面试题:Java对象不再使用时,为什么要赋值为null?

前言 许多Java开发者都曾听说过“不使用的对象应手动赋值为null“这句话,而且好多开发者一直信奉着这句话;问其原因,大都是回答“有利于GC更早回收内存,减少内存占用”,但再往深入问就回...

码农突围
今天
32
0
设计模式(5) 原型模式

原型模式 原型模式的适用场景 浅拷贝 深拷贝 用Initialize方法修改初始化状态 原型模式与之前学习的各种工厂方法、单例模式、建造者模式最大、最直观的区别在于,它是从一个既有的对象“克隆...

zhixin9001
今天
7
0
获取免费的pycharm激活码网站

http://www.lookdiv.com/

云烟成雨forever
今天
27
0
用Helm部署Kubernetes应用,支持多环境部署与版本回滚

1 前言 Helm是优秀的基于Kubernetes的包管理器。利用Helm,可以快速安装常用的Kubernetes应用,可以针对同一个应用快速部署多套环境,还可以实现运维人员与开发人员的职责分离。现在让我们安...

南瓜慢说
今天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部