Javascript 与';这';在jquery代码块内使用时
我想在jquery代码块中使用调用对象的值,但“this”映射到jquery对象,而不是eh caller!请问如何解决这个问题Javascript 与';这';在jquery代码块内使用时,javascript,jquery,oop,dom,Javascript,Jquery,Oop,Dom,我想在jquery代码块中使用调用对象的值,但“this”映射到jquery对象,而不是eh caller!请问如何解决这个问题 // class myClass = function (){ // member object this._localVars = { _elementClass:'.elem-class', _dots:null, _dotStatus:null }; // member funct
// class
myClass = function (){
// member object
this._localVars = {
_elementClass:'.elem-class',
_dots:null,
_dotStatus:null
};
// member function
this.func1 = function() {
$(this._elementClass).each(function(_index, _element){
// this._localVars._dots[_index] = _element; ... this line throws an error 'this._localVars' is undefined ... as 'this' is html element here and not an object of the calling class
});
};
};
请建议如何在jquery代码块中使用“this”来引用类的变量/对象,而不是HTML/jquery
谢谢尝试将
此
对象保存到局部变量中
var myObject = this;
$(this._elementClass).each(function(_index, _element){
myObject._localVars._dots[_index] = _element;
});
您可以使用设置所需的此
的值
将函数作为第一个参数传递,将当前的this
作为第二个参数传递
myClass = function (){
this._localVars = {
_elementClass:'.elem-class',
_dots:[],
_dotStatus:null
};
this.func1 = function() {
$(this._localVars._elementClass).each( $.proxy(function(_index, _element) {
this._localVars._dots[_index] = _element;
}, this));
};
};
var cl = new myClass();
cl.func1();
console.log(cl._localVars._dots);
不过,如果我使用'var myObject=this;'它不会创建对象的本地副本吗?然后无论我做什么操作,都会影响该本地副本而不是全局集合?@Mandeep否,它只会创建对旧对象的引用。不是C,谢谢你,兄弟。。。这正是我想要的。非常感谢。