在javascript中,他们使用的是:
var self=this;
var jquery_element= $(html_element);
self.jquery_element=jquery_elemnet
为什么我们在javascript中使用这些。我从OpenStack horizon
获得了此代码答案 0 :(得分:6)
var self=this;
对于嵌套函数非常有用,而this
可能会变得模棱两可(如果您不知道this
是javascript关键字)。 self
可用于仍然更改现在从内部函数引用this
的{{1}}。
this
只是提供了一种简单的方法来引用jQuery元素,而不必不断地重新创建它(也提供了性能优势,例如解释here)。
var jquery_element= $(html_element);
似乎是特定于该代码的,我不太确定它的作用。
答案 1 :(得分:3)
要回答您的直接问题,this
是javascript 关键字,其值将根据其位置而变化。通过将其值写入self
之类的常规变量,即使self
本身已更改,您也可以保留this
在范围内的值。
答案 2 :(得分:3)
用于在其他范围内查看,以便在一个范围内使用this
,在其他范围内。 修改强>
var parentFunction = function(){
this.msg = "hello world";
var parentScopeSelf = this;
var innerFunction = function(){
var innerFunctionScopeSelf = this;
console.log(this.msg);// undefined (because this now is innerFunction scope, and does not have property msg)
console.log(innerFunctionScopeSelf.msg);// undefined (because innerFunctionScopeSelf is "this" from innerFunction scope, and does not have property msg)
console.log(parentScopeSelf.msg);// hello world (because parentScopeSelf is "this" from parentFunction scope)
}
}
答案 3 :(得分:1)
当您具有嵌套函数时,将this
分配给另一个变量很有用。例如:
jQuery(function($) {
$('#myInput').on('keyup', function() {
var $this = $(this); // assign the jQuery's element to $this
$('div.errors').each(function() {
console.log($(this)); // outputs jQuery's object div.errors
console.log($this); // the input is still available in the nested function
});
});
});
作为建议,如果变量存储jQuery
元素,请在其前面添加$
。因此,它应该是
var $jquery_element = $(html_element);
答案 4 :(得分:1)
var jquery_element= $(html_element);
是使html元素成为一个jquery对象,可以与jquery的所有方法一起使用。
html_element.fadeOut();
< - 将无效
$(html_element).fadeOut();
< - 将会工作