【发布时间】:2019-09-12 10:07:16
【问题描述】:
我正在研究 OOP 以及像 jQuery 这样的框架是如何工作的。如果我使用更改类属性的方法创建类,它会为所有变量调用更改它:
class test{
constructor(selector) {
this.el = document.querySelectorAll(selector);
return this;
}
find(selector) {
this.el = this.el[0].querySelectorAll(selector); //well...
return this;
}
}
function x(selector){ return new test(selector); }
var p = x('#parent'); //returns #parent
var c = p.find('#child') //returns #child
console.log(p); //returns #child too!
但是如果我使用 jQuery,它就像我需要的那样工作:
var p = $('#parent'); //returns #parent
var c = p.find('#child') //returns #child
console.log(p); //returns #parent
我了解什么“find”方法替换了类的属性,变量“p”就像类实例的快捷方式。但是如何让它像在 jQuery 中一样工作呢?
【问题讨论】:
标签: javascript jquery oop inner-classes