在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/網絡安全  HTML/ JS關于dom結構中的this該怎么判斷?

JS關于dom結構中的this該怎么判斷?

代碼如下:

var body = document.querySelector('body');
body.style.background = '#000';
console.log(body.style.background);
//    "rgb(0, 0, 0)"
body.style.background.substr(this.length);
//    "gb(0, 0, 0)"

這里面的this到底指向了哪個東西? 單獨log出來找不到相關length為1的對象啊?

PS: 原本打算簡化相應的代碼, substr用來過濾px|vh等單位

回答
編輯回答
玩控

this指向window;

var _color = body.style.background;
    _color.substr(color.length); 
2017年7月25日 13:43
編輯回答
蔚藍色

this是window,輸出這句話console.log(this);在window屬性里發(fā)現其length是0

2018年2月10日 01:29
編輯回答
網妓

函數直接調用,this指向undefined。 作為對象調用時,this指向該對象。 非嚴格模式下,this指向undefined時,會自動改為指向window。 你代碼這里是直接調用this,且為非嚴格模式,所以指向的是window. 你可以自己console.log(this)查看啊

2017年4月14日 22:58
編輯回答
別傷我

在js中this指的是,調用函數的對象,例如
div1.onclick = function (){

this.innerHTML = '我是DIV1'

}
this為div1
在你的代碼中,this指向的是window DOM的根節(jié)點

2018年6月24日 07:22
編輯回答
入她眼

我覺得你應該仔細看看substr方法的參數以及返回值

2017年4月23日 22:58
編輯回答
枕頭人

windowlength屬性

MDN

2017年4月8日 12:55
編輯回答
骨殘心

直接放在script里面的話,這里this指window,你可以

    window.length = 2;
    console.log(body.style.background.substr(this.length));
2017年11月27日 02:11