一个不带参数的 JavaScript 函数
a javascript function called without arguments
我正在尝试理解JavaScript代码。
Banana.reloadUser在没有任何参数的函数中被调用:
function(data) {
if (!data.result.success) {
alert(data.result.message)
} else {
/*do something*/
Banana.testData = data;
Banana.reloadUser();
}
}
Banana.reload用户定义如下:
Banana.extend({
reloadUser: function(cb, data) {
var that = this,
done = function(d) {
$.extend(that.user, d);
if ($.isFunction(cb)) {
cb(d)
}
that.trigger("user.reloaded", [d])
};
if (data) {
done.apply(banana, [data])
} else {
/*do something*/
}
}
})
调用"reloaduser"以将用户信息数据保存在本地存储中。因此,每当用户从其帐户执行新操作时,"reloaduser"都会将新信息保存到本地存储中。
我的问题是,既然 Banana.reloadUser 被调用而没有参数,它应该如何选择它的参数?
注意:这是一个大的JavaScript/jquery代码的一部分,所以如果这些信息还不够,请忽略这个问题。
大的Javascript代码确实包含另一个函数
Banana.reloadUser(function() {
try {
Banana.trigger('start', [$]);
}catch(e) { }
try {
$('[data-deferred]').deferredImage();;
}catch(e) { }
});
started = true;
};
如果你调用一个没有参数的 JavaScript 函数,那么它的所有参数都会收到一个值 undefined
(而不是null
这是一个不同的值)。
所以打电话
Banana.reloadUser()
与以下相同:
Banana.reloadUser(undefined, undefined)
在您的代码中,这是完全可以的,条件是:
if ($.isFunction(cb)) {
将失败,因为undefined
不是函数,稍后条件是:
if (data) {
也会失败,因为当undefined
出现在需要布尔值的地方时,它被视为等效于 false。
它与下面的调用完全相似,
Banana.reloadUser(undefined,undefined);
相关文章:
- 在url参数javascript中存储键值对列表
- 可选参数 JavaScript 技巧
- 如何计算参数 JavaScript 中的条件
- 未定义的变量作为函数参数 javascript
- 使用带有参数 Javascript 的函数更改全局变量
- 如何在参数JavaScript中更改对象属性
- 如何使用参数(javascript)调用Date构造函数
- 作为参数(javascript)传递的函数的系统唯一id
- Backbone.BabySiter内部参数-Javascript Scope
- 未定义函数参数-Javascript
- 谷歌地图api v3-IE7-main.js错误-无效参数(javascript)
- 通过onclick函数发送参数-Javascript
- 传递属于对象的匿名方法作为参数-Javascript
- 未捕获类型错误:没有足够的参数Javascript游戏
- 缺少)参数Javascript错误
- 在函数参数Javascript上使用toSentenceCase
- 跳过函数参数javascript
- 如何在调用不带括号的函数时传递参数 [Javascript]
- 如何传递多个参数javascript
- Foreach键和值输入参数javascript