问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

javascript如何列出全局对象的非原生属性

发布网友 发布时间:2022-05-15 18:43

我来回答

2个回答

懂视网 时间:2022-05-15 23:04

对于任何JavaScript程序,当程序开始运行时,JavaScript解释器都会初始化一个全局对象以供程序使用。这个JavaScript自身提供的全局对象的功能包括:

1.全局对象拥有一些常用的属性值。比如undefined、Infinity以及NaN。
2.全局对象拥有一些常用的属性对象。比如Math、JSON和Number对象均为该全局对象的属性。
3.全局对象提供一些全局函数供调用。比如isNaN()、isFinite()、parseInt()和eval()等。
4.全局对象提供一些全局构造器(constructor),也即全局类。比如Date()、RegExp()、String()、Object()和Array()等。

除了JS全局对象,对于运行在浏览器端的JavaScript程序,还有另一个全局对象:window。window全局对象提供了与当前窗口、页面有关的诸多属性与方法。

除了这些与浏览器有关的全局属性和方法,window对象还封装了JS全局对象,并向外暴露JS全局对象的属性与接口;因此,当进行浏览器端JavaScript编程时,只需关心window全局对象即可。

对于JavaScript程序中的this,如果this不属于任何function,那么这个this就指代JS全局对象;如果是浏览器端运行的JS程序,那么这个this就指代window全局对象。

如果这个this属于某个function,那么this指代的就是调用该function的对象。若这种情况下function只是一个普通的函数,而不是某个类的方法,那么this的指代存在两种可能:

1.在ECMAScript 3标准,以及ECMAScript 5标准的非严格模式下,this指代全局对象。
2.在ECMAScript 5标准的严格模式下,this指代undefined。

根据这一特性,可以使用以下代码来判断当前是否处于严格模式:

var strict = (function(){return !this;}());

如果在JavaScript程序中创建了全局变量,那么这个全局变量会成为全局对象中的一个属性。

实验

var a = this;
console.log(a);//window object
console.log(a.outerWidth);//access window object's attribute
console.log(a.isNaN);//access JS global object's attribute
x = "test";
console.log(a.x);//access newly created global variable value

热心网友 时间:2022-05-15 20:12

(function(){ var iframe = document.createElement("iframe"); document.body.appendChild(iframe); var originWindow=iframe.contentWindow,
currentWindow=window
var origin =Object.keys(originWindow),
current =Object.keys(currentWindow),
extendAttr={};
current.forEach((key)=>{ if(originWindow[key]===undefined){
extendAttr[key]=currentWindow[key]
};
}) console.log(`origin window:${origin.length},current window:${current.length},extentAttr:${Object.keys(extendAttr).length}`) console.log("extendAttr:",extendAttr); document.body.removeChild(iframe);
})();
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
莲花冬天发芽好吗 过冬荷花什么时候发芽 一个手机号怎样登陆两个孩子的长沙市中小学生人人通云平台 人人通怎么进入学校 人人通电脑版学生怎样登录 名侦探柯南真人版3为什么要换人? 真人版柯南,你最喜欢小栗旬还是沟端淳平? 央企中国稀土集团落户江西,衷心希望江西摆脱“环江西经济带”地位_百度... 来天津的央企有哪些 东丽区的央企有哪些 北京天润欣诚生物科技有限公司怎么样? 深圳市欣诚捷硕科技有限公司怎么样? 深圳市鼎欣诚电子科技有限公司怎么样? 重庆欣诚远科技有限公司怎么样? 南通欣诚建设科技项目管理有限公司怎么样? 绵阳欣诚电子科技有限公司怎么样? 珠海欣诚网络科技有限公司怎么样? 知道别人的,怎么在微信上加啊?急急 舟山市普陀区欣诚网络科技有限公司怎么样? 皮衣洒上啤酒怎么处理 深圳市欣诚科技有限公司怎么样? 山西扬帆欣诚科技有限公司怎么样? 重庆中伟欣诚科技有限公司怎么样? 如何加码 很久没用了,现在用怎么才可以登陆上去? 怎么登录 怎么登录 怎么才能加上呢 自己手机上怎么登录别人的? 电脑怎么上 3600+ 90nm 的CPU是否支持DDR2 800线的内存 怎样才有? 济南欣诚诺环保科技有限公司怎么样? 昆山欣诚利电子科技有限公司怎么样? 我国的注销他项权证在哪里办理 房产他项权利注销的具体条件是什么 济南市有哪些旅游景点? 房屋他项权利注销证明应该在哪里注销呢 房屋他项权利注销证明在哪里注销 欧普三合一碳纤维浴霸照明灯管怎么换 连江那个外语培训学校最好 筒袖铠是谁发明的,它有什么优缺点呢? 刘备的士兵穿的是什么盔甲 javascript全局变量有哪些 杨紫独宠一字肩泡泡袖被嘲没有新意,你怎么看? 午夜使徒肩甲哪儿出? 胖mm拍婚纱照穿什么没有比较好? 验钞机jby _d_b07(c) 裴翠BC如何鉴别 下列关于光现象的说法中,正确的是(  )A.光与镜面成30°角射到平面镜上时,其反射角为30°B.验钞机