Javascript将函数返回为变量
Javascript making the return of a function into a variable
如何使此app.locals.user
成为返回值而不是函数?现在我必须运行app.locals.user().name
.
我怎样才能让它跑app.locals.user.name
?
app.locals.user = function(){
if(typeof(req.session.user) != 'undefined'){
console.log(req.session.user.name.full);
return req.session.user;
}else{
return false;
}
};
只是return whateverVariable;
Javascript不是类型化的,所以你不能真正做任何事情来把它放在函数签名中。
function foo() {
var x = { a : 10, b : 20};
return x;
}
var y = foo();
debug(y.a); //prints 10
好吧,您可以使用__defineGetter__:
app.locals.__defineGetter__("user", function() {
if(typeof(req.session.user) != 'undefined') {
console.log(req.session.user.name.full);
return req.session.user;
} else {
return false;
}
});
编辑:__defineGetter__似乎已被弃用,这里有一个更好的方法:
Object.defineProperty(app.locals, "user", { get : function() {
if(typeof(req.session.user) != 'undefined') {
console.log(req.session.user.name.full);
return req.session.user;
} else {
return false;
}
});
您可以立即执行该函数,以便将结果存储为变量:
app.locals.user = (function(){
if(typeof(req.session.user) != 'undefined'){
console.log(req.session.user.name.full);
return req.session.user;
}else{
return false;
}
})();
相关文章:
- JS变量返回的对象不是值
- 存储区向变量返回了结果
- PHP/Ajax/jquery/JON-在Ajax Post之后将echo文本中的一部分作为变量返回
- PHP 函数不会向 JavaScript 变量返回值
- 当尝试使用ajax读取文件时,变量返回undefined
- Protractor-分配给element.all.locator.count的变量返回NaN why
- 范围变量返回长度错误
- 当chrome检查器为jQuery变量返回[object object]时,如何返回实际数据
- jQuery - img src 中的变量返回未定义
- 在angular.extend()中向变量返回一个承诺的值
- 循环遍历 HTML 内容并将值作为全局变量返回
- 为什么我的 JavaScript 提升的局部变量返回未定义,但提升的全局变量返回空白
- 解析 HTML 文件并将值作为 php 变量返回
- 提醒变量返回“未定义”
- 将一个函数中的局部变量返回给另一个函数
- PHP 将变量返回给外部 JavaScript
- 获取 JS 中的下拉变量返回未定义
- 使用 promise 将异步函数的结果作为“变量”返回
- 条件返回或单变量返回
- Meteor find使用变量返回null