调用一个不传递参数的函数
Calling a function without passing arguments meteor app
通过发现流星(第92页),有一节涵盖了以下代码:
Posts.allow({
update: ownsDocument,
remove: ownsDocument
});
ownsDocument = function(userId, doc) {
return doc && doc.userId === userId;
}
代码本身,你可能已经猜到,只允许用户更新/删除自己的帖子取决于是否"ownsDocument"返回真或假。我不明白的是,简单地调用"ownsDocument"如何成功地完成任何事情,当它似乎没有传递参数给函数。ownsDocument如何返回true或false时,它不出现的帖子。当它被调用时,允许传递userId/doc ?
编辑:删除示例代码中的多余分号
Meteor自动将userId
和doc
参数传递给您分配给传递给allow
的update
和remove
键的任何函数对象。您发布的代码的工作原理相同:
Posts.allow({
update: function(userId, doc) {
return doc && doc.userId === userId;
},
remove: function(userId, doc) {
return doc && doc.userId === userId;
}
});
ownsDocument
函数在代码中没有被调用。allow
函数通知Meteor在Post
被更新或删除时调用该函数。
[…当它不显示帖子时。当它被调用时,允许传递userId/doc ?
它在哪里被调用?
在您的示例中,ownsDocument
根本不被称为。您所要做的就是配置在update
和remove
情况下应该调用哪些函数。
函数在其他地方和在不同的时间调用,在那里它们将被传递正确的参数。
这就像事件处理程序一样。foo.onclick = bar;
不调用bar
。它给foo.onclick
分配了一个对function的引用,以便稍后调用该函数。此时,函数将被传递一个事件对象
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 函数未将值作为参数传递
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 为什么不'我们在javascript中使用函数参数的数据类型
- 你好,这是测试用例,我必须在函数中传递n个参数
- JavaScript - 多参数函数,它是多个图像库的字符串
- 如何从两个参数函数返回随机整数
- 以无点风格在Ramda中编写一个无参数函数
- JS:将单参数函数转换为可链接函数
- 正则表达式类似于Javascript中的参数函数
- 将 $' 值传递给替换的关联参数函数
- "这个“;在参数函数中
- 如何向jquery插件发送参数函数
- 将参数函数Node.js从一个js传递到另一个js
- 如何在javascript参数函数中传递PHP post方法字符串
- 装饰 Javascript Promise.then 以便参数函数接收附加参数
- 正在分析setInterval ID'是的's参数函数
- 如何根据一个参数函数计算年龄
- 对象参数/函数和/或三元运算符混淆