我是JS的新手并试图理解基本概念。我想学习面向对象的JS,但我遇到了困难。我试图了解return语句的用法。我刚刚浏览了dropdown.js中的代码并遇到了以下行:
return $this.trigger('click')
现在我习惯了:
return true
return false
甚至:
return (1 + 1) > 10 ;
我知道这些return语句的用法。我对return语句的一般概述是它用于返回你想在另一个地方使用的值。
我仍然无法理解为何使用此声明:
return $this.trigger('click');
此行也可以在git上的line 75上找到。
谢谢。
亚历-Z
答案 0 :(得分:3)
请注意,这是Dropdown.prototype.keydown
方法的一部分,因此我们检测在您引用的行中按下了哪个键
if ((!isActive && e.which != 27) || (isActive && e.which == 27)) {
if (e.which == 27) $parent.find(toggle).trigger('focus')
return $this.trigger('click')
}
字符代码27是转义键。因此,如果用户点击了转义键,则触发此元素的on click事件(下拉列表)并返回jQuery对象(因为jQuery链接)。
答案 1 :(得分:0)
我的猜测是。 trigger
函数返回this
个对象。
因此调用的全部内容与。相同。
var that = $this.trigger('click')
return that;
但是只要你需要触发一些事件,f.e。 keydown事件被触发,您触发所需的事件并在同一行返回该对象。
答案 2 :(得分:0)
答案 3 :(得分:0)
https://api.jquery.com/trigger/处的文档说.trigger返回jQuery对象。
这样做可以在函数链中使用它。这意味着你可以做到: $ this.trigger('单击&#39)。someOtherJqueryFunction();
如果你还没有返回jQuery对象,你就无法做到。
举个简单的例子,让我们说你有一个对象叫做具有Home,Dog的属性的人
不涉及jQuery的简单示例。 让我们说有一个设置家和狗的功能,但该功能返回人物对象:
function setHomeName(name){
homeName = name;
return this; // return person
}
function setDogName(name){
dogName = name;
return this; // return person
}
现在你可以做person.setHomeName(' home name')。setDogName(' dog name');
这相当于person.setHomeName(' home name'); person.setDogName('狗名')。
当person.setHomeName()返回对person对象本身的引用时,我们可以将函数链接在一起并将所有内容写入一行。从jQuery示例中可以看到这个链可能很长。