是否可以检查变量是否等于窗口对象?

时间:2018-09-12 16:50:21

标签: javascript jquery html css

我想做的例子:

let var1 = window;

if(var1 == window){
    //do something
}

它会运作良好吗?

不问这个:

let a = {c: 'a'};
let b = {c: 'a'};

if(a == b){
// do something
}

响应页面中有一个列表。加载页面时,如果页面宽度小于768px,则函数将获取窗口对象以检测滚动位置,如下所示:

if((window.innerWidth || document.documentElement.clientWidth || document.documentElement.clientWidth) < 768){
  flowObj.scrollElement = window;
}else{
  flowObj.scrollElement = document.querySelector('.flow-list').parentNode;
}
// If width lower than 768px list-container CSS change to height: auto; scroll: none; so list scroll on body

需要使用以下方法更改滚动位置:

if(flowObj.scrollElement == window){
 flowObj.scrollElement.scrollTo(0, value);
}else {
 flowObj.scrollElement.scrollTop = value;
}

需要知道它运作良好吗?

1 个答案:

答案 0 :(得分:2)

let var1 = window;

Var1是指向窗口对象的引用。也就是说,您只有窗口对象本身的“键”。只要不更改var1的值,与window的浅表比较将始终返回true

另一方面,如果您尝试对窗口对象进行深层复制,则由于窗口对象会随时间变化而变得棘手,但是通过深度克隆创建的对象不会变。