在Javascript中执行简单闭包时出现运行时错误
Runtime error when executing simple closure in Javascript
我是JS的新手,正在努力学习。规范要求以下内容:编写一个以另一个函数*为参数的函数,并创建只能调用一次的函数版本。对修改后的函数的重复调用将不起作用,返回原始调用的值。如果不使用闭包,你怎么能做到这一点?这可能吗?你怎么能用闭包做到这一点*注意:这个原始的输入函数不应该有任何参数。
这就是我所拥有的:
var divide = function () {
var x = 2;
var y = 6;
return y/x;
}
var mainFunc = function (func) {
return func(){
return y/x + 1;
}
}
var output = mainFunc(divide);
console.log(divide());
console.log(output());
console.log(output());
我在"return func()"处收到了一个"Unexpected token{"错误。我不太明白我做错了什么?根据规范,我将divide()传递给mainFunc(),并将其设置为引用变量输出。然后,我多次调用divide(
谢谢你的帮助。
开始:
function runonce(func) {
return (function(func) {
var ran = false;
var retval;
return function() {
if (!ran) {
ran = true;
retval = func();
}
return retval;
}
})(func);
}
function realfunction() {
console.log('really running');
return 5;
}
var realfunctionrunner = runonce(realfunction);
realfunctionrunner();
realfunctionrunner();
realfunctionrunner();
仔细研究代码,整个技巧是一个"自包含库",其结果是从runonce函数
相关文章:
- JavaScript错误:Microsoft JScript运行时错误:应为对象
- 当出现javascript运行时错误时会发生什么
- Microsoft JScript运行时错误:无法获取属性'的值;样式':对象为null或未定义
- Microsoft JScript运行时错误:'Sys'未定义(在mvc3 c#剃刀中)
- JavaScript运行时错误:完成此操作所需的数据尚不可用
- 管理node.js中的运行时错误
- Windows 8应用程序正在运行,现在得到0x800a1391-JavaScript运行时错误:'WinJS&
- 如何从 MVC4 链接调用 Javascript 方法(错误 JavaScript 运行时错误:对象不支持此操作)
- JavaScript 运行时错误仅在本地计算机上
- 运行时错误:对象不支持属性或方法
- JavaScript 错误(Microsoft JScript 运行时错误:对象预期)
- Javascript 运行时错误:“应用程序未定义”
- JavaScript运行时错误,未定义jQuery
- MVC4和日期选择器:“;0x800a01b6-JavaScript运行时错误:对象没有't支持属性或方法
- Microsoft JScript运行时错误:对象没有't支持属性或方法'html'
- 如何解决Microsoft JScript运行时错误:'$'未定义
- GridView页面索引更改事件导致JavaScript运行时错误
- JQuery+Ajax:JavaScript运行时错误:需要函数
- 在Javascript中执行简单闭包时出现运行时错误
- Google Web 工具包运行时错误:方法中缺少非本机或抽象方法中的“代码”属性