前端-obj === obj.window是什么意思?

问题描述

obj === obj.window是什么意思?

$.isWindow = function(obj) { return obj != null && obj === obj.window; };
前一句obj!=null好懂,指obj不是空参数,后面一句obj === obj.window是什么意思?

解决方案

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:耗子
链接:https://www.zhihu.com/question/24260239/answer/27213585
来源:知乎

window对象是一个包含自己的对象 window.window....window === window;jq的这种判断并不严谨,比如 var a = {};
a.window = a;
console.log(a === a.window); // true
isWindow jq用在一些组合判断里。比如判断一个对象为纯粹的key-value hash对象,形如 {a:1,b:2}这种 ,而typeof坑太多,Object.prototype.toString.call又有兼容问题, jq先确定typeof返回的是"object",然后再依个排除array、 window、dom、函数实例等...

解决方案二:

https://www.zhihu.com/question/24260239

时间: 2024-08-03 00:01:45

前端-obj === obj.window是什么意思?的相关文章

oracle中通过update _NEXT_OBJECT 实现obj$.obj#和obj$.dataobj#跳号

在一些特殊的情况下(比如ORA-00600 [15267],ORA-00600 [KKDLCOB-OBJN-EXISTS],Ora-600 [15260]),考虑需要把dba_objects中的object_id往前推进,这里通过试验的方法实现该功能 数据库版本信息 SQL> select * from v$version;   BANNER ---------------------------------------------------------------- Oracle Datab

c-源程序是不是多个源文件组成的obj?

问题描述 源程序是不是多个源文件组成的obj? 源程序是什么?这段话说函数的本质是全局的,那么多个源文件不是就可以通用了吗,为什么还分为能否被调用 解决方案 源程序就是整一个程序.指的是代码文件,具体来说就是.cpp和.h文件.这些文件之间的关系可以很简单(比如其中一个文件包含了其他文件),他们的关系也可以很复杂(自己想象),怎么来描述文件之间的关系呢?有个东西叫做Makefile,用于描述这种关系,如果是使用VS等集成开发环境,那么编译器自动帮你做了这个工作. 编译器首先会将每个文件生成.ob

前端工程师前端性能优化及技巧分享

  在行业内有句话不知道大家有没有听说过,'懂得性能优化并且研究过jquery源代码的人和不懂得性能优化写出来的代码对于性能的消耗会相差上百倍甚至上千倍',现在的javascript属于从ECMAscript3到ECMAscript5以及ECMAscript6的一个过渡的过程.在javascript的编写不健全的时候编写代码方法不得当,引起的问题也是不容忽视的. 性能优化 下面将自己对于性能优化的一些见解与大家分享; 1.精灵图 最基本的是尽可能的将背景图片做成精灵图,减少图片的请求,所以一般w

前端性能优化及技巧_javascript技巧

    前言        为什么要优化性能对于前端工程师如此重要           在行业内有句话不知道大家有没有听说过,'懂得性能优化并且研究过jquery源代码的人和不懂得性能优化写出来的代码对于性能的消耗会相差上百倍甚至上千倍',现在的javascript属于从ECMAscript3到ECMAscript5以及ECMAscript6的一个过渡的过程.在javascript的编写不健全的时候编写代码方法不得当,引起的问题也是不容忽视的.     性能优化     下面将自己对于性能优化的

很容易被忘记的前端JS面试题

此题是综合之前的开发经验以及遇到的JS各种坑汇集而成.此题涉及的知识点众多,包括变量定义提升.this指针指向.运算符优先级.原型.继承.全局变量污染.对象属性及原型属性优先级等等. 用来考核面试者的 JavaScript的综合能力 /**  * 一道常被人轻视的前端JS面试题  *  * 此题是综合之前的开发经验以及遇到的JS各种坑汇集而成.此题涉及的知识点众多,包括变量定义提升.this指针指向.运算符优先级.原型.继承.全局变量污染.对象属性及原型属性优先级等等.  * 用来考核面试者的

使用iframe window的scroll方法控制iframe页面滚动

 在页面中如何控制内嵌的iframe滚动呢?方法是使用iframe window的scroll方法,大家可以参考下面的示例 在页面中如何控制内嵌的iframe滚动呢?方法是使用iframe window的scroll方法:    1.获取iframe的窗口对象    var iwin = document.getElementById('iframe1').contentWindow;    2 .获取iframe的窗口document对象    var doc = iwin.document;

使用iframe window的scroll方法控制iframe页面滚动_javascript技巧

在页面中如何控制内嵌的iframe滚动呢?方法是使用iframe window的scroll方法: 1.获取iframe的窗口对象 var iwin = document.getElementById('iframe1').contentWindow; 2 .获取iframe的窗口document对象 var doc = iwin.document; 3.调用iframe window对象的scroll方法 iwin.scroll(0,doc.body.scrollHeight); scroll

IE之动态添加DOM节点触发window.resize事件_javascript技巧

然后页面有几个事件是动态地增加DOM元素的,比如点击某个层会在底下列出该层详细内容,这样在FF和chrome下没出现问题,但是在IE6-8下每次都重布局了. 比如我拖动一个层,在拖动过程中层的内容又显示在最底下了,当我放开层的时候这个层就跳回拖动前的位置了... 起先我还没看出来是重布局了...然后演示了N久,挣扎了N久,终于觉得可能是由于动态增加DOM节点导致触发window.resize而使页面重布局了... 最后我不由地在心里喊了句"Thank godness....",还好改变

判断对象是否Window的实现代码_jquery

直入正题吧. 先看jQuery的$.isWindow函数: 复制代码 代码如下: function isWin(obj){ return obj && typeof obj === 'object' && 'setInterval' in obj; } 这个函数本身是很科学的, 它主要是通过检查目标对象是否拥有setInterval属性来判断. 然而问题在于, 在缺少约定的情况下, 它也许并不太可靠, 比如: 复制代码 代码如下: var o={xx:'oo'}; o['s