草庐IT

function-expression

全部标签

JavaScript 匿名函数表达式 vs IIFE

遇到一些在表达式中使用IIFE而不仅仅是普通函数的代码。varcustom_type=(function(){return$('#myDiv').attr('custom_type');})();通常我会这样写:varcustom_type=function(){return$('#myDiv').attr('custom_type');};IIFE的原因是什么?我唯一能想到的是,IIFE可能只在开始时分配一次custom_type变量,而第二次可能会在每次引用变量时继续检查更新的类型。 最佳答案 在这个例子中,你可以完全放弃这个函

javascript - react 路由器 : execute custom function on every <Link> navigation

很抱歉,如果这个问题已经得到解答。但是有没有办法在每个上执行自定义函数?导航?最好不要创建自定义包装器。我想在我的应用程序中的每次导航之前将一些信息放入sessionStorage。谢谢 最佳答案 您可以使用onClick来执行任何操作,比如说console.log('Headingto/')}/>将console.log替换为执行sessionStorage更新等的函数,仅此而已。另一种方法是使用Route组件的onEnter属性来为每个路由输入执行特定功能:console.log('Entered/')}/>参见referenc

javascript - $(document).ready(function() 和 $(function() 之间有什么区别?

所以我知道这是做什么的:$(document).ready(function(){//Yourcodehere...});现在我看到人们最近这样做:$(function(){//Yourcodehere...});这两种方式做同样的事情吗?我在这里看到在jquery选择器中声明了一个匿名函数,但实际上从未被调用过,但从页面运行的方式来看,这似乎只是在页面加载时运行。 最佳答案 是的,他们在做同样的事情。当调用的参数是单个函数对象时,$()函数包装$(document).ready()。(编辑以反射(reflect)评论中的问题)

javascript - 中级 JavaScript : assign a function with its parameter to a variable and execute later

我有一个JavaScript函数:functionalertMe($a){alert($a);}我可以这样执行:alertMe("Hello");我想做的是将带有"Hello"参数的alertMe("Hello")赋给一个变量$func,然后稍后可以通过执行$func();之类的操作来执行此操作。 最佳答案 我想添加评论作为答案代码//definethefunctionfunctionalertMe(a){//returnthewrappedfunctionreturnfunction(){alert(a);}}//declaret

javascript - 使用 (function() { … }).call(this) 包装文件与使用简单 () 进行调用

这个问题在这里已经有了答案:Reasonbehindthisselfinvokinganonymousfunctionvariant(5个答案)关闭8年前。backbone.js源代码使用这样的函数包装器:(function(){...}).call(this);见http://backbonejs.org/docs/backbone.html#section-185.更常见的是,我看到使用以下内容:(function(){...})();这两者的行为何时不同?我的印象是它们是等价的,但我认为鉴于Backbone使用.call(this)而不是较短的替代方案,所以一定存在差异。

javascript - Express Middleware 为所有 app.get() 填充一个 Jade 变量

我有一个名为layout.jade的Jade文件,我的所有模板都对其进行了扩展。如果用户当前已登录(这在req.session中保持跟踪),我希望能够在其中有一个注销按钮。所以layout.jade会有类似的东西,-if(loggedin)a.navButton(href="/logout")LogOut页面的路由看起来像,app.get("/foo",function(req,res){res.render("foo",{loggedin:req.session.isValidUser});});问题是,我不想在每条路由中都手动填充loggedin变量。有没有一种方法可以使用Expr

javascript - Node.js/ express : respond immediately to client request and continue tasks in nextTick

我想将服务器高消耗CPU任务与用户体验分开:./main.js:varexpress=require('express');varTest=require('./resources/test');varhttp=require('http');varmain=express();main.set('port',process.env.PORT||3000);main.set('views',__dirname+'/views');main.use(express.logger('dev'));main.use(express.bodyParser());main.use(main.ro

javascript - 在 express 中预编译 jade 模板对生产有好处吗

当在生产中使用jade-lang时,我是否会受益于某种形式的预编译所有.jadeView然后在res.render中使用它们的中间件?还是当您执行NODE_ENV=production时会自动发生?我只是在探索有关如何在生产环境中加快jade渲染的选项。 最佳答案 当Jade编译模板时,模板被缓存。在生产环境中如果预热缓存,则不需要预编译模板。即使您不这样做,模板也会在第一次编译后被缓存。我建议您查看Jade的源代码,以更好地理解它的工作原理。exports.render=function(str,options,fn){//...

javascript - app.configure(function){} typeerror undefined is not a function

我正在使用socket.io和angularjs创建一个聊天应用程序,当我使用cmd运行app.js文件时,我收到一条错误消息“app.configure(function){}typeerrorundefinedisnotafunction”可能是什么问题?我的代码是这样的:varhttp=require('http');varexpress=require('express'),routes=require('./routes'),socket=require('./routes/socket.js');app=module.exports.app=express();varser

javascript - CORS - Angular 和 Express 的 http OPTIONS 错误

我正在尝试从Angularjs客户端对我的API进行POST,我在另一个域中运行的服务器上有此配置:app.use(function(req,res,next){res.setHeader('Access-Control-Allow-Origin','*');res.setHeader('Access-Control-Allow-Methods','GET,POST,PUT,OPTIONS,DETELE');res.setHeader('Access-Control-Allow-Headers','*');next();});发送到服务器的header是:OPTIONS/api/aut