我有一个关于匿名函数如何在Javascript中工作的问题。 我看到这段漂亮的代码从html元素切换“禁用”[来自这篇文章link to stack overflow ]:
$('#el').prop('disabled', function(i, v) { return !v; });
匿名函数i和v的输入是索引和值。
为什么?是因为.prop()还是以某种方式是匿名函数的属性?还有其他输入吗? 感谢
解决方案:我的问题的答案在.prop() api.jquery.com/prop/的文档中:
答案 0 :(得分:1)
这就是jQuery .prop()
方法的实现方式。如果它看到第二个参数是一个函数,它会为每个匹配的元素调用你的函数,传递元素索引和属性值。
在JavaScript中创建API涉及针对涉及API客户端将使用的回调的所有情况做出类似的决策。一般来说,没有严格的规则,尽管某些情境可能会遵循惯例。一个例子是Node世界,其中回调传递两个参数,一个(可能为空)error
以及与操作相关的数据是非常常见的。
答案 1 :(得分:1)
这是jQuery中定义prop()
函数的方式。或者更确切地说,如何定义prop()
的回调。
答案 2 :(得分:1)
为什么?是因为.prop()还是这个属性 匿名函数?还有其他输入吗?
不,不是匿名函数的“属性”,匿名回调函数的参数。是的,可以为函数定义,传递,调用其他参数。
i
:index
是传递的选择器#el
中元素的索引; v
:value
是所选disabled
元素的DOM
属性的值#el
disabled
答案 3 :(得分:0)
匿名函数作为参数传递给jquery Reader
方法(prop
)。 jquery将完成它的魔力并调用该函数将这些参数传递给它,以便您能够使用它们。