对原型这章的建议
来源:3-8 实际应用 - 总结
 
			李行知
2018-07-25
我感觉老师在犯一个错误。不是关于知识方面的,而是讲解方面的。
因为看高级课程的多少对原型有所了解。但是用的不对,不是看不到jq的源代码,而是不明白为什么这么做。。。等真的自己去做的时候才发现有问题。
自己看这章的时候一直有个问题,为什么呢?为什么jq这么麻烦呢?为什么不直接写prototype呢?
于是我自己写了一下,发现以下代码
let jq = function (selector) {
let slice = Array.prototype.slice
let dom = slice.call(document.querySelectorAll(selector))
let len = dom ? dom.length : 0
for (let i = 0; i < len; i++) {
this[i] = dom[i]
}
this.length = len
this.selector = selector || ''
}
jq.prototype = {
css() {
alert('css')
},
html() {
alert('html')
},
}
window.$ = jq需要在外面来使用
new才能正确的使用,所以才明白了这个地方为啥会看起来这么复杂。为什么非要有这么多的init呢?很多时候不仅仅想知道的是,怎么做的,而是,为什么这么做
感觉老师这个地方可能把我们想的太厉害了,如果太厉害了其实这个点就没有什么意义了。。。包括这个点我现在还是不明白,为什么还要有一个init
init.prototype=jq.fn
跟
jq.fn.init.prototype=jq.fn的效果不是一样的吗?
那为啥jQuery非要再加一个变量呢?
这里希望老师可以解答一下
写回答
	1回答
- 
				
				jQuery 和 zepto 是同一种使用凡是,但是完全是两种原型的设计方式,至于为何绕来绕去的这么设计,我也没有准确的答案。 不过,这个问题不用过于纠结,能通过这个地方把原型熟悉了即可。 012018-07-25
相似问题
