【JS闭包的理解】教程文章相关的互联网学习教程文章

Javascript闭包函数不返回正确的值【代码】

我的Javascript代码有问题,不知道它为什么不运行. 这是我的计时器:var time = 0; startTimer();function startTimer(){setInterval(function(){time=time+1;},10); }这段代码可行(我在点击按钮时运行timeoutTester(),然后它会发出警报并显示时差):function timeoutTester(){var snap_time1 = time;setTimeout(function(){var snap_time2 = time;var diff = snap_time2-snap_time1;alert(diff); //works: ~100 everyti...

javaScript中的匿名函数和闭包(第2篇)【图】

javaScript中的匿名函数和闭包(第2篇)<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>javaScript中的匿名函数和闭包(第2篇)</title> <script type="text/javascript">/*作用域链的机制导致一个问题,在循环里的匿名函数取得的任何变量都是最后一个值*///循环里的匿名函数的取值问题function f1(){var arr = [];//循环里包含匿名函数for (var index = 0; index < 5; index++) {arr[index] = function (){ //arr[0]=0...

Javascript闭包 – 表单提交在我告诉之前被触发【代码】

我试图将一些简单的逻辑包装到javascript / jquery闭包中以将表单绑定到jQuery validate.普通代码看起来像这样……// attach the jquery unobtrusive validator $.validator.unobtrusive.parse("#formName");// bind the submit handler to unobtrusive validation. $("#formName").data("validator").settings.submitHandler = function() {viewModel.Save( $("#formName" ) ); };工作奇妙.我只是想把它包起来,让它变得更干净.所以...

javascript – 为什么在JSON数据上使用$.each后我的闭包变量被清除了?【代码】

请考虑以下示例:var features = [];$.getJSON(annotations_url, function(data) { $.each(data, function(key, val) {features.push(wkt_parser.read(val.annotation.wkt_data));// at this point, "features" contains objects}); });annotationLayer.addFeatures(features); // here, it is empty again在这里,我希望功能不断增长.但是,在最后一行中,功能再次为空. 为什么这样,我如何正确地将值推送到$.each(或者更确切地说是内...

javascript – 在循环中绑定事件处理程序所需的闭包?【代码】

我正在尝试在循环中绑定事件处理程序,例如:var tabs = ['one', 'two', 'three', 'four']for(var i = 0; i < tabs.length; i++) {alert(tabs[i]);var id = i;$('#' + tabs[i]).bind('click', function() {loadTabs(id, tabs);});}只保留最后一个绑定(值’四’). 我正在尝试整合当前可行的代码:$('#one').click(function() {loadTabs(0, tabs);});$('#two').click(function() {loadTabs(1, tabs);});$('#three').click(function() ...

是否有更可读的方式来表达javascript闭包?【代码】

我想在用户点击一个对象时用JSON更新一些数据.我想出的是以下双重关闭.var buildGetJSON = function(m,t,p,u) { return function () {var buildUpdateParticipants = function(m,t,p) {return function(data) { updateParticipants(m,t,data,p); };};$.getJSON(u, buildUpdateParticipants(m,t,p));}; }; marker.on("click", buildGetJSON(marker, title, popmsg, url));它工作,但让我想知道是否有一个更简洁的方法来为这两个函数...

如何使用闭包创建一个javascript库【代码】

我写了一些javascript,我将封装在一个闭包中,所以我可以在其他地方使用它.我想这样做类似于jQuery的方式.我希望能够将id传递给我的闭包并在其上调用一些函数,同时设置一些选项.与此类似:<script type="text/javascript">_snr("#canvas").draw({imageSrc : someImage.png}); </script>我已经阅读了很多关于如何使用闭包来做这个的不同帖子,但我仍在努力解决这个问题.这是我离开的地方:_snr = {}; (function (_snr) {function merg...

jQuery事件处理程序的JavaScript闭包【代码】

我有一个对象列表,每个对象都有一个.bullet,它是一个SPAN.我想将跨度上的单击绑定到处理程序,而不是使用jQuery对跨度执行某个操作.我看到一些我不理解的行为,所以我希望有人可以解释发生了什么.基本上,这个第一个代码示例有效:for (var i = 0 ; i< length ; i++) {(function(){dataNode = dataNodeList[i];var handler = function(e) {e.data.node.bullet.firstChild.nodeValue = "- ";};$(dataNode.bullet).on("click",{node:dat...

Javascript – 使用闭包增加静态函数变量模拟?【代码】

所以似乎Javascript中没有函数静态变量.我试图在函数内增加一个变量,但我不想这样做:function countMyself() {if ( typeof countMyself.counter == 'undefined' ) {// It has not... perform the initilizationcountMyself.counter = 0;} }我想用闭包来做,但我很难理解这些. 有人在另一个问题中提出这个建议:var uniqueID = (function() {var id = 0;return function() { return id++; }; })();但是当我提醒uniqueID时它所做的就...

JavaScript循环出现的问题——用闭包来解决【代码】

在for循环中,数组长度为3,我本来是想对每个循环的元素绑定一个点击事件的,结果点击后控制台输出全部为1。 1 for (var i = 0; i < data.data.length; i++) {2 $(.lands).append(3 <button type="button" class="land land + `${i % 3 + 1}` + "> 4 <div class="soil"> 5 <!-- 成长中的树 --> 6 <div class="tree-wrap"> 7 <img src="../../images/...

javascript – 如何在jQuery中创建适当的闭包?【代码】

这是我的代码示例:var bar = function() {this.baz = function() {this.input = $('.input');this.input.bind("keydown keyup focus blur change", this.foo);}this.foo = function(event){console.log(this);}}显然,单击我的输入可以在控制台中输入输入.我怎么能得到这样的酒吧呢?解决方法:这是因为当您bind事件时,使用触发事件的DOM元素的上下文调用事件处理函数,this关键字表示DOM元素. 要获得“bar”,您应该存储对外部闭包的...

创建一个javascript库闭包【代码】

在过去的几天里,我一直在开发类似于Underscore.js和Jquery的JavaScript库.在这两个库中,它们使用一个可以接受参数的对象,但也可以使用它调用的方法:$(“param”).method();或_(“param”).method(); 我一直在阅读这两个库的源代码,试图了解他们是如何实现这样的事情,但一直无法弄明白.我不知道这种类型的封闭的名称,所以我一直无法搜索它. 任何帮助将不胜感激,我只是想弄清楚如何将这种类型的对象实现到我的库中.解决方法:您只需创...

JavaScript使用数百个闭包或一个函数调用【代码】

我有一个数据网页,里面可能有几千个TD.一些TD将需要使用TD的内容或部分内容的绑定onclick事件. 我正在使用jQuery添加onclick闭包,如下所示:$(".date").click(function() {var d = this.html();doSomething(this, d, otherparams); }这有效吗?似乎我的页面将包含几百个或几千个几乎相同的闭包.将doSomething调用放在其他地方会不会更好.解决方法:事实上,这是非常低效的.甚至更多,因为您可以使用事件委派轻松解决它.这样做,将只使用...

Javascript中对象和闭包的有趣和奇怪的行为【代码】

看代码<script type = 'text/javascript'> function a() {; } a.prototype.hello = function() {alert('hello'); } (function(){var b = 8;} ()); </script>?我不是在创建一个对象而不是调用hello().但是我正在调用hello(). 当我删除闭包时,不会自动调用该函数.即.对于<script type = 'text/javascript'> function a() {; } a.prototype.hello = function() {alert('hello'); } </script>这种奇怪行为的原因是什么? http://jsfidd...

javascript – 量角器:无法访问父函数中定义的闭包中的变量【代码】

我在我的一个JS文件中有以下代码.// test/lib/UserHelper.js'use strict'; var Firebase = require('firebase');exports.createUser = function (email, password) {browser.executeAsyncScript(function (done) {var $firebaseSimpleLogin = angular.inject(['ng', 'firebase']).get('$firebaseSimpleLoging');var firebaseRef = new Firebase('https://urltoapplication.firebaseio.com');var auth = $firebaseSimpleLogin(fireb...

闭包 - 相关标签
JAVASCRIPT - 技术教程分类
JavaScript 教程 JavaScript 简介 JavaScript 用法 JavaScript Chrome 中运行 JavaScript 输出 JavaScript 语法 JavaScript 语句 JavaScript 注释 JavaScript 变量 JavaScript 数据类型 JavaScript 对象 JavaScript 函数 JavaScript 作用域 JavaScript 事件 JavaScript 字符串 JavaScript 运算符 JavaScript 比较 JavaScript 条件语句 JavaScript switch 语句 JavaScript for 循环 JavaScript while 循环 JavaScript break 和 continue 语... JavaScript typeof JavaScript 类型转换 JavaScript 正则表达式 JavaScript 错误 JavaScript 调试 JavaScript 变量提升 JavaScript 严格模式 JavaScript 使用误区 JavaScript 表单 JavaScript 表单验证 JavaScript 验证 API JavaScript 保留关键字 JavaScript this JavaScript let 和 const JavaScript JSON JavaScript void JavaScript 异步编程 JavaScript Promise JavaScript 代码规范 JavaScript 函数定义 JavaScript 函数参数 JavaScript 函数调用 JavaScript 闭包 DOM 简介 DOM HTML DOM CSS DOM 事件 DOM EventListener DOM 元素 HTMLCollection 对象 NodeList 对象 JavaScript 对象 JavaScript prototype JavaScript Number 对象 JavaScript String JavaScript Date(日期) JavaScript Array(数组) JavaScript Boolean(布尔) JavaScript Math(算数) JavaScript RegExp 对象 JavaScript Window JavaScript Window Location JavaScript Navigator JavaScript 弹窗 JavaScript 计时事件 JavaScript Cookie JavaScript 库 JavaScript 实例 JavaScript 对象实例 JavaScript 浏览器对象实例 JavaScript HTML DOM 实例 JavaScript 总结 JavaScript 对象 HTML DOM 对象 JavaScript 异步编程 javascript 全部