后面改成這樣就和$.each 這樣的方法一樣了
ajQuery.setName = function(myName) {
this.myName = myName
return this;
}
ajQuery.getName = function() {
$("#aaron").html(this.myName)
return this;
}
$$.setName('慕課網-Aaron').getName();
ajQuery.setName = function(myName) {
this.myName = myName
return this;
}
ajQuery.getName = function() {
$("#aaron").html(this.myName)
return this;
}
$$.setName('慕課網-Aaron').getName();
2017-06-14
其實大體理解了,但是最后的這句“通過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