Javascript 缓存变量时,最好的调用方式是什么?

Javascript 缓存变量时,最好的调用方式是什么?,javascript,jquery,Javascript,Jquery,如果缓存变量: var something = $('#something'); 我已经看到它后来被用作: $(something).doAction(); something.doAction(); 使用两者有区别吗?我已经开始使用something.doAction(),因为它看起来更干净、更容易阅读。但是我想知道这是否会导致任何问题?$(…)返回一个jQuery对象 如果将jQuery对象放入变量中,则在稍后检查时,该变量仍将包含jQuery对象,就像您可能放入变量中的任何其他内容一样

如果缓存变量:

var something = $('#something');
我已经看到它后来被用作:

$(something).doAction();
something.doAction();
使用两者有区别吗?我已经开始使用something.doAction(),因为它看起来更干净、更容易阅读。但是我想知道这是否会导致任何问题?

$(…)
返回一个jQuery对象

如果将jQuery对象放入变量中,则在稍后检查时,该变量仍将包含jQuery对象,就像您可能放入变量中的任何其他内容一样

没有神奇的小精灵会在你背后摆脱jQuery对象。
(除非您意外地将其他内容放在变量的其他位置)

$(…)
返回一个jQuery对象

如果将jQuery对象放入变量中,则在稍后检查时,该变量仍将包含jQuery对象,就像您可能放入变量中的任何其他内容一样

没有神奇的小精灵会在你背后摆脱jQuery对象。

(除非您意外地在其他地方的变量中添加了其他内容)

只需将其保存为jquery对象,以便以后使用或避免重复

var $button = $('#button');

$button.click(function(){
//some code here
});

//now applying some style to it
$button.css({color:"#ccc",background:"#333"});
或者可以用

var $button = $('#button').css({color:"#ccc",background:"#333"});

$button.click(function(){
//some code here
});

更新:

有时,如果您查找按钮,jquery将返回按钮,而不是对象,以便在您将其作为参数传递给jquery构造函数时进行编辑或执行某些操作


。您只是在寻找按钮,jquery返回该按钮,但如果需要应用某些样式、事件等,则需要将其作为参数传递给jquery构造函数
($或jquery)

只需将其保存为jquery对象,以便以后使用或避免重复

var $button = $('#button');

$button.click(function(){
//some code here
});

//now applying some style to it
$button.css({color:"#ccc",background:"#333"});
或者可以用

var $button = $('#button').css({color:"#ccc",background:"#333"});

$button.click(function(){
//some code here
});

更新:

有时,如果您查找按钮,jquery将返回按钮,而不是对象,以便在您将其作为参数传递给jquery构造函数时进行编辑或执行某些操作


。您只是在寻找按钮,jquery返回该按钮,但如果需要应用某些样式、事件等,则需要将其作为参数传递给jquery构造函数
($或jquery)

这与jQuery无关。这只是Javascript的一个基础

var x = foo();
x.something();

当然与
foo().something()
相同。去学习编程或Javascript,直到它有意义为止。

这与jQuery无关。这只是Javascript的一个基础

var x = foo();
x.something();

当然与
foo().something()
相同。去学习编程或Javascript,直到它有意义为止。

something
是一个jQuery对象,不需要将它放在带美元符号的括号中,因为:
$(something)

jQuery选择器返回jQuery对象,这里的情况是
$('#something')

好的命名实践是将某物命名为$something,这样您就知道该变量包含jQuery对象

$(..)示例的另一个好用法是将html包装为字符串以获取jQuery对象,如下所示:

$divObject = $('<div>Some text</div>');
$divObject.text(); // value is 'Some text'
$divObject=$('Some text');
$divObject.text();//值为“某些文本”

something
是一个jQuery对象,不需要将它放在带美元符号的括号中,因为:
$(something)

jQuery选择器返回jQuery对象,这里的情况是
$('#something')

好的命名实践是将某物命名为$something,这样您就知道该变量包含jQuery对象

$(..)示例的另一个好用法是将html包装为字符串以获取jQuery对象,如下所示:

$divObject = $('<div>Some text</div>');
$divObject.text(); // value is 'Some text'
$divObject=$('Some text');
$divObject.text();//值为“某些文本”

前者是多余的。后者是你所需要的。你能理解这三行吗?你认为会发生什么?
$(某物)
等于
$($(“#某物”)
。将其称为“缓存变量”是严重的误导。您正在缓存函数调用的结果。前者是多余的。后者是你所需要的。你能理解这三行吗?你认为会发生什么?
$(某物)
等于
$($(“#某物”)
。将其称为“缓存变量”是严重的误导。您正在缓存一个函数调用的结果。我说过,这是保留一个查询对象,但可以。我会解释betterI也见过这种类型的var,$in$按钮有什么作用吗?或者它只是为了便于以后阅读和使用(您知道它是存储在var中的jquery对象)@user2413333:No;这是一个普通变量,其名称中碰巧有一个
$
。@user2413333,只需知道该变量包含一个jquery对象。但这是一个正常的变量,我说的是,保持一个查询对象,但ok。我会解释betterI也见过这种类型的var,$in$按钮有什么作用吗?或者它只是为了便于以后阅读和使用(您知道它是存储在var中的jquery对象)@user2413333:No;这是一个普通变量,其名称中碰巧有一个
$
。@user2413333,只需知道该变量包含一个jquery对象。但它是一个普通的变量,特别是,
$()
与任何其他函数都没有区别。特别是,
$()
与任何其他函数都没有区别。您应该解释jQuery对象的特殊之处,以便如果将它们放入变量中,变量以后仍然保存该对象。关键点是jQuery对象没有什么特殊之处。您应该解释jQuery对象的特殊之处,以便如果将它们放入变量中,变量以后仍然保存该对象。关键点是jQuery对象没有什么特殊之处。