如何在严格模式下实现以下JavaScript闭包
How can I implement the following JavaScript closure in strict mode?
以下代码
'use strict';
function blah() {
if (1 ==21) {
}
else {
var i = 10;
function inner() {
console.log(i);
}
}
}
产生以下错误:
SyntaxError:在严格模式代码中,函数只能在顶级或直接在另一个功能内。
如何将函数编写为内部函数,以便它可以访问我的变量"I"?根据严格模式,我需要将函数移到顶部,但此时"I"尚未声明为
由于var i
无论如何都会被提升到function blah
作用域的顶部,因此您可以执行以下操作:
'use strict';
function blah() {
var i;
function inner() {
console.log(i);
}
if (1 ==21) {
}
else {
i = 10;
}
}
inner()
需要从哪里访问?这对你的目的有用吗?:
var inner = function () { ... };
它已经声明,因为var
为整个函数而不是块声明变量。
内部函数必须声明为函数表达式,如下所示:
var inner = function () {
console.log(i);
};
相关文章:
- 绑定函数时在IE7中未实现Javascript错误
- 可以't实现JavaScript翻转计数器
- 如何实现 Javascript 自动完成功能
- 实现JavaScript内部方法的源代码
- 当实现javascript倒计时时,其他html元素将消失
- 在aspx页面中实现javascript时出现问题
- 这是实现javascript字符串长度属性的正确方法吗
- 将递归函数转换为异步 CPS 实现 (javascript)
- 如何在Wordpress中实现javascript
- 在jQuery方法中实现Javascript变量
- 无法实现 JavaScript 代码
- 在 Rails 应用程序中实现 JavaScript 库
- 如何实现 JavaScript 对象继承
- 我将如何实现JavaScript
- 当浏览器开始实现JavaScript时,如何在支持一两个版本较旧的浏览器的同时开始使用它们
- 有没有其他方法可以在纯python中实现javascript的onClick()函数
- 如何在JavaCC中实现JavaScript自动分号插入
- 响应式网页设计 - 如何实现JavaScript部分
- 用Selfish实现Javascript中的简单继承
- 如何实现JavaScript/ECMAScript“;这里没有线路终止器”;JavaCC中的规则