其实大体理解了,但是最后的这句“通过new把init方法与ajQuery给分离成2个独立的构造器。”差点绕晕了。。。 本来就是两个独立的构造器,只是通过new串起来了
跟多个函数放到一个函数中一次执行有什么不同,不明白?
如果把多个函数直接放到一个函数中,那如果你需要新增一个函数呢,改动原先的函数?如果那段代码不是你写的,你是不是还要先去搞懂对方写的是什么意思,然后再把函数添加到相应的地方,如果使用观察者模式通过暴露一个接口让你来添加新的函数,这样不是更好
如果把多个函数直接放到一个函数中,那如果你需要新增一个函数呢,改动原先的函数?如果那段代码不是你写的,你是不是还要先去搞懂对方写的是什么意思,然后再把函数添加到相应的地方,如果使用观察者模式通过暴露一个接口让你来添加新的函数,这样不是更好
2017-06-11
constructor: ajQuery并不是一定要去设置的,但为什么一般我们会去手动设置呢?因为在一些特殊情况下我们需要用到constructor属性,比如通过constructor属性来判断对象类型 [].constructor === Array // true function Foo(){} var foo = new Foo(); foo.constructor === Foo // true 当你重写构造器的prototype时constructor属性就会被窜改,那再去使用constructor属性判断对象类型就不准确了,又比如jquery中的isPlainObject
2017-06-10
<img src = "null" onerror="alert(1)"/>
2017-05-29
/^[\x20\t\r\n\f]*([>+~]|[\x20\t\r\n\f])[\x20\t\r\n\f]*/这个正则错了吧?去掉^才对
2017-05-17
var cache = {}
var object = cache[options] = {};
//cache = {
// "once,memory":{
// once,memory" :true
// }
//}
//
//object = {
// "once,memory" :true
//}
很精髓的关联啊,厉害!!!
var object = cache[options] = {};
//cache = {
// "once,memory":{
// once,memory" :true
// }
//}
//
//object = {
// "once,memory" :true
//}
很精髓的关联啊,厉害!!!
2017-05-14