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对象没有什么特殊之处。