链接一个本地函数

jQuery - chaining a native function

本文关键字:函数 一个 链接      更新时间:2023-09-26

谁能解释一下为什么我可以像这样将一个本地JavaScript函数链接到一个jQuery函数:

$('#search').val().replace("00:00:00", "")

在本例中,replace是原生JavaScript函数。

http://www.w3schools.com/jsref/jsref_replace.asp

谢谢

在这种情况下,val()必须返回string值,因此replace按预期工作。这与调用返回string的函数并链接

没有什么不同
function example() {
  return "foo";
}
example().replace("00:00:00", "");

正如Jamie所说,函数从左到右求值。所以val()返回一个类型字符串,它的方法是replace。jquery函数都是可链的原因是,它们每次返回时都会返回一个由选择器创建的原始对象的引用。除了val(), text(), html()和一些其他的。

这是因为:

$('#search').val().replace("00:00:00", "")

将计算为:

"some string".replace("00:00:00", "")

没有什么特别的。基本上总是从左到右对函数求值,在以下情况下也是如此:

$('#search').eq(0).val().replace("00:00:00", "")
<jQuery obj>.val().replace("00:00:00", "")
"some string".replace("00:00:00", "")