下記のコードについて、始めに
var thisE = this; とあるのですが
これは、例えば
var obj = new Accordion(_data);
としたときに、変数にオブジェクト自身を代入する、ということになると思うのですが
これはどういった目的でするのでしょうか
javascript
1function Accordion(_data){ 2 var thisE = this; 3 this.activeClass = _data.activeClass; 4 this.$btn = _data.$btn; 5 this.$target = _data.$target; 6 7 this.savedCSS = null; 8 this.$btn.on('click', function(){this.blur();thisE.btnClicked();return false;}); 9 10 this.onBeforeDIsplayChange = function(){return true;}; 11 if(typeof _data.onBeforeDisplayChange == 'function'){ 12 this.onBeforeDIsplayChange = _data.onBeforeDisplayChange; 13 } 14 15 this.onAfterDisplayChange = function(){}; 16 if(typeof _data.onAfterDisplayChange == 'function'){ 17 this.onAfterDisplayChange = _data.onAfterDisplayChange; 18 } 19} 20Accordion.prototype.btnClicked = function(){ 21 this.displayChange(!this.$btn.hasClass(this.activeClass)); 22}; 23 24Accordion.prototype.displayChange = function(_flg){ 25 var _ret = this.onBeforeDisplayChange(_flg); 26 _ret = (typeof _ret=='undefined')?true:_ret; 27 if(!_ret) return; 28 29 var thisE = this; 30 if(_flg){//open 31 this.$btn.addClass(this.activeclass); 32 this.$target.stop().slideDown('300', function() { 33 thisE.onAfterDisplayChange(_flg); 34 }); 35 }else{//close 36 this.$btn.removeClass(this.ctiveclass); 37 this.$target.stop().slideUp(300,'swing', function(){ 38 thisE.onAfterDisplayChange(_flg); 39 }); 40 } 41}; 42
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。