Tag: scope

在需要时丢失全局variables

我想全局定义一些东西(下划线库,mongoose,数据库连接,最终一个权限对象) app.js /* module dependencies */ const express = require('express'); const auth = require('http-auth'); const underscore = require('underscore'); const expressValidator = require('express-validator'); const mongo = require('mongodb'); const db = require('./library/db'); /*end module dependencies */ /*routes files*/ const post = require('./routes/post'); /* end route files */ /* start the app instance */ var app = express(); […]

NodeJS REPL:为什么这个variables赋值失败?

有人能帮我理解下列行为吗? 我预料到,由于我可以在这个callback中设置全球f ,我也应该能够改变它。 我不明白在REPL中节点如何处理上下文和全局的问题,以便理解这一点,我非常感谢你的支持。 不使用useGlobal启动REPL $ cat test.js var repl = require('repl'); repl.start({useGlobal:false}); 现在尝试连续两次设置f : $ node test.js > f ReferenceError: f is not defined > setTimeout(function(){f=1;}, 0); > f 1 第一次工作…现在再试一次: > setTimeout(function(){f=2;}, 0); > f 1 咦! 第一次运行设置它; 第二个不影响它。 (设置useGlobal : true我得到了我期望的行为。)

JavaScript将范围传递给另一个函数

是否有可能以某种方式将函数的范围传递给另一个? 例如, function a(){ var x = 5; var obj = {..}; b(<my-scope>); } function b(){ //access x or obj…. } 我宁愿直接访问variables,即不使用任何像this.obj或this.obj ,但只是直接使用x或obj 。