首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Angular 2 "this“无法访问嵌套函数中的全局变量

Angular 2是一种流行的前端开发框架,用于构建单页应用程序。在Angular 2中,"this"关键字在嵌套函数中无法访问到外部的全局变量。这是因为在嵌套函数中,"this"的上下文发生了改变。

为了解决这个问题,可以使用箭头函数(arrow function)来替代普通的函数。箭头函数不会改变上下文,因此可以访问到外部的全局变量。

另外,还可以使用JavaScript的bind()方法来绑定函数的上下文。通过bind()方法,可以将函数绑定到指定的上下文,从而在嵌套函数中访问全局变量。

在Angular 2中,可以使用以下方法来解决"this"无法访问嵌套函数中的全局变量的问题:

  1. 使用箭头函数:globalVariable = "Hello"; nestedFunction = () => { console.log(this.globalVariable); // 可以访问到全局变量 }
  2. 使用bind()方法:globalVariable = "Hello"; nestedFunction = function() { console.log(this.globalVariable); // 可以访问到全局变量 }.bind(this);

这样,无论是使用箭头函数还是bind()方法,都可以在嵌套函数中访问到外部的全局变量。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Angular专题】——(2)【译】AngularForwardRef

原文地址:https://blog.thoughtram.io/angular/2015/09/03/forward-references-in-angular-2.html 作者:Christoph...问题点在哪里 先做一个小声明,我们现在拥有一个AppComponent,并使用DI系统向其中注入了一个NameService,因为我们使用是Typescript,所以需要做工作就是在构造函数参数声明变量...无论如何,当我们在调试器打开Pause on caught exceptions功能时,就会在Angular框架捕获这个错误: Cannot resolve all parameters for...Make sure they all have valid type or annotations 错误信息显示,AppComponent构造函数在被调用时,同一个文件声明NameService...但有时候循环引用可能无法避免,当类A引用类B,同时B又引用A时,就会陷入困境:它们某一个必须先定义。 forwardRef( )建立一个间接引用,供Angular随后解析。

3.2K20

关于pythonlambda函数描述_Python全局变量

提示:文章写完后,目录可以自动生成,如何生成可参考右边帮助文档 文章目录 前言 示例一、单个输入参数 示例二、多个输入参数 示例三、作为返回值返回 ---- 前言 `在python...可以使用Lambda表达式生成匿名函数,其语法格式为: Lambda 参数:表达式 其中参数可以是一个或者是多个,但只支持一个表达式 ---- 下面提供三种应用 示例: 示例一、单个输入参数 fun1...= lambda x: x+5; print(fun1(2)); 输出结果为: 7 示例二、多个输入参数 fun2 = lambda x,y:x+y; print(fun2(5,9)); 输出结果为...14 示例三、作为返回值返回 def fun3(n): return lambda x:x**n;#注意此处有return 将Lambda函数返回 M1 = fun3(5); print(M1...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

1.2K10

python函数嵌套函数作为变量以及闭包原理

嵌套函数:python允许创建嵌套函数。也就是说我们可以在函数里面定义函数,而且现有的作用域和变量生存周期依旧不变。...例,inner作为一个函数被outer返回,保存在变量res,并且还能够调用res()。为什么能调用呢?...上例inner()函数就是一个闭包,它本身也是一个函数,而且还可以访问本身之外变量。...,这个函数对象执行的话依赖非函数内部变量值,这个时候,函数返回实际内容如下: 1 函数对象 2 函数对象需要使用外部变量和变量值以上就是闭包闭包必须嵌套在一个函数里,必须返回一个调用外部变量函数对象...,才是闭包在上边例子,相对于inner来说 ,outer函数就是它得全局变量,就好像你存粹写个函数会用到函数外面环境定义得全局变量一样 ,都是相对概念通俗理解就是:里面函数执行 ,需要用到外面函数一个变量

4.7K11

javascript事件监听传递匿名函数(嵌套定义命名函数)与命名函数区别

如果通过匿名函数内再嵌套具名函数,结果就能返回正确!...,第二次以后需要执行代码 fn = function() { console.log(2); }; })...(window); 这段代码第一次打印1,之后点击打印2 此处需要理解概念:对象引用类型和函数闭包 解读 对象按照引用传递。...第一个fn指向匿名函数(对象),然后添加事件指向是匿名函数(对象),你改写fn并不会改写该匿名函数(对象);第二个事件是匿名函数,里面调用fn指向函数(形成闭包,取最后赋值fn)。...Object{c:3},因为a, c指向同一对象,引用传递不是复制,这个例子b就好比fn 后记 项目中刚开始想实现此功能时候用是第一种方法,但是未能实现,经同事指点,需要嵌套一个匿名函数,形成闭包

1.1K40

按规则解析字符串嵌套函数并实现函数调用

按规则解析字符串嵌套函数并实现函数调用 需求 1、按照一定规则解析字符串函数表达式,并替换这些表达式。...这些函数表达式可能包含其它函数表达式,即支持函数嵌套 2函数表达式格式:{ __函数名称() }、{__函数名称( 函数参数 )} 注意: 函数名称以_打头 函数参数之间使用 || 分隔 形如 $...函数参数支持python原生函数 形如 ${ __function1( set([1,2,3]) )} 解决思路 1、先解析内部函数,再解析其父函数,即从内到外解析 实现方式:查找不包含嵌套函数表达式函数表达式...,先临时替换为“临时插件函数表达式” 形如 '@plugin_func_custom_function_name@',同时以该值为字典key,存储对应临时函数表达式,然后再用替换后字符串去查找不包含嵌套函数表达式函数表达式...,然后再替换字符串,直到找不到为止 2、解析替换后字符串,获取“临时插件函数表达式”,然后执行调用该函数 3、函数参数类型分析 字符串参数要求用 单、双引号 引用,通过eval(参数)转换,如果转换成功则用转换后

5K30

详解ANGULAR2组件变化检测机制(对比ANGULAR1脏检测)

组件和变化检测器 如你所知,Angular 2 应用程序是一颗组件树,而每个组件都有自己变化检测器,这意味着应用程序也是一颗变化检测器树。顺便说一句,你可能会想。是由谁来生成变化检测器?...Angular 2 编译器为每个组件自动创建变化检测器,而且最终生成这些代码 JavaScript VM友好代码。...虽然 Angular 2 优化后变化检测执行速度很快,但我们能否只针对那些有变化组件才执行变化检测或灵活地控制变化检测时机呢 ? 答案是有的,接下来我们看一下具体怎么进行优化。...变化检测策略 在 Angular 2 我们可以在定义组件 metadata 信息时,设定每个组件变化检测策略。...但如果 ProfileCardComponent profile 输入属性没有发生变化,是没有必要再执行变化检测。针对这种情况,Angular 2 为我们提供了 OnPush 检测策略。

2.9K90

matlabimwrite_medfilt2函数

将灰度图像写入 PNG 将索引图像数据写入 PNG 用 MATLAB 颜色图写入索引图像 将真彩色图像写入 JPEG 将多个图像写入 TIFF 文件 写入 GIF 动画 ---- imwrite函数作用是将图像写入图形文件...frame = getframe(fig); im{idx} = frame2im(frame); end close; 将多个系列图像显示在一个图窗。...因为 GIF 文件不支持三维数据,所以应调用rgb2ind,使用颜色图map将图像 RGB 数据转换为索引图像A。...16 位编码原始(二进制)图像 ‘png’ PNG-可移植网络图形 1 位、2 位、4 位、8 位和 16 位灰度图像;带有 alpha 通道 8 位和 16 位灰度图像;1 位、2 位、4 位和...8 位索引图像;24 位和 48 位真彩色图像;带有 alpha 通道 24 位和 48 位真彩色图像 注意:imwrite 函数不支持写入颜色图条目不足索引 PNG 文件。

1.9K20

matlabim2bw函数_matlabtofloat

大家好,又见面了,我是你们朋友全栈君。 函数功能: 该函数用于填充bai图像区域和“空洞”。...语法格式: BW2 = imfill(BW) 这种du格式将一张二值图像显示在屏zhi幕上, 允许用户使用鼠标在图像上点几个点, 这几个点围成区域即要填充区域。...[BW2,locations] = imfill(BW) 这种方式, 将返回用户取样点索引值。注意这里索引值不是选取样点坐标。...BW2 = imfill(BW,locations) 这种格式允许用户编程时指定选取样点索引。locations是个多维数组时, 数组每一行指定一个区域。...BW2 = imfill(BW,’holes’) 填充二值图像空洞区域。 如, 黑色背景上有个白色圆圈。 则这个圆圈内区域将被填充。

1K30

Angular2 返回时组件生命周期函数不被调用解决方法

这两天使用 Angular2 遇到一个 @angular/router bug: 症状 @angular/router 版本 3.0.0-beta.2 使用 safari 浏览器,iOS 都可以...打开 Angular2 官方范例项目 点击导航栏上 Heroes 转到 Heroes 列表页面 后退回到 Dashboard 页面,正常情况下应该有的四个 Heroes 没有出现 桌面 safari...或 iOS 都可以,使用 router 导航到一个新页面,然后后退,原页面 Component 生命周期函数不会被调用,导致页面表现不正常。...解决方法 已经有人修复了:fix(router): back button does not work in IE11 and Safari 但至本文成文还没有更新到最新 router npm 模块里...临时应急的话可以自行修改项目目录下node_modules/@angular/router/src/router.js 282 和 284 行即可 this.locationSubscription

1.8K40

【重学Python】Day4作用域,Python关键字global和nonlocal使用

2、在嵌套函数访问外部函数变量 3、在闭包中使用外部变量 一、概念 作用域是指变量有效范围。...比如两个嵌套函数,一个函数(或类) A 里面又包含了一个函数 B ,那么对于 B 名称来说 A 作用域就为 nonlocal。 G(Global):当前脚本最外层,比如当前模块全局变量。...属于局部作用域,在function_2之外无法访问。...:用于在嵌套函数声明外部嵌套作用域中变量,使得内部函数可以访问和修改外部函数变量。...y 值: 21 四、使用场景 1、在函数内部修改全局变量 上面已有 2、在嵌套函数访问外部函数变量 上面已有 3、在闭包中使用外部变量 闭包是一种特殊函数,可以访问其外部作用域中定义变量。

7610

Day4作用域,Python关键字global和nonlocal使用

比如两个嵌套函数,一个函数(或类) A 里面又包含了一个函数 B ,那么对于 B 名称来说 A 作用域就为 nonlocal。...我们在function_2并没有定义a和b两个变量,在上面代码b=2,b作为了全局变量,属于全局作用域,没有定义在任何一个函数。...属于局部作用域,在function_2之外无法访问。...**:用于在嵌套函数声明外部嵌套作用域中变量,使得内部函数可以访问和修改外部函数变量。...```## 四、使用场景### 1、在函数内部修改全局变量上面已有### 2、在嵌套函数访问外部函数变量上面已有### 3、在闭包中使用外部变量闭包是一种特殊函数,可以访问其外部作用域中定义变量

6410

吾爱NLP(2)--解析深度学习激活函数

某电商评论区 首先,要将句子向量化,可以使用word2vec词向量,也可以使用简单一种方式是计算每句话TFIDF特征值,TFIDF是使用词频除以文档频率来表示一个词重要性权重,这种处理使得文字转变为向量...,从而可以输入到模型输入层,而且向量值还携带着句子信息。...神经元激活函数 ? 输出层激活函数 其次,将得到TFIDF向量输入到上面这样单层网络,网络将输出一个其为好评概率值。...2、为什么需要激活函数 "神经网络激活函数真正功能是什么?请阅读这篇概述文章并查看下最下面的速查表吧。...Softmax回归模型是logistic回归模型在多分类问题上推广,在多分类问题中,待分类类别数量大于2,且类别之间互斥。

79020

理解JavaScript作用域

大纲 作用域 作用域嵌套与作用域链 查询异常 词法作用域(静态作用域) 函数作用域 全局作用域 块级作用域 变量提升机制 函数优先 作用域 是什么? 作用域是指程序源代码定义变量区域。...作用域规定了如何查找变量,也就是确定当前执行代码对变量访问权限。 作用域嵌套与作用域链 当一个块或函数嵌套在另一个块或函数时,就发生了作用域嵌套。...原因是把 obj 对象传入函数内,obj 对象没有 a 属性,所以 obj.a 值是 undefined,却在 with()语句中 a 被当作全局变量隐式声明了,而且进行了赋值为2。...: a, b, c is not defined // 原因变量a,b,c是定义在函数内部变量,外部作用域是无法访问。...“重复”声明代码函数会首先被提升,然后才是变量。

68620

js 闭包是什么

闭包(closure): 可以访问其他函数内部定义变量函数。在js,只有函数内部函数才能访问到局部变量,所以,闭包可以理解为"定义在一个函数内部函数"。...定义在最外层作用域变量是全局变量,定义在函数内部变量称为局部变量,由于 JavaScript 特性,外层函数无法访问内部函数变量;而内部函数可以访问外部函数变量(即作用域链)。...闭包特性 函数嵌套函数; 内部函数可以访问外部函数变量; 被访问参数和变量不会被JavaScript垃圾回收机制回收(不会被销毁); 简单例子如下: function fn1() {...在这段代码,当函数fn1执行并将函数fn2返回后,闭包使得Javascript垃圾回收机制不会收回函数fn1里num变量所占用资源(不会被销毁),因为fn1内部函数fn2执行需要依赖num变量...闭包优缺点 优点: 保护函数变量安全;加强封装性,可以达到对变量保护作用; 上述函数fn1num只有函数fn2才能访问,而无法通过其他途径访问到,因此保护了i安全性。

5.5K30
领券