Javascript 题目集-题壹
2015-12-18 21:09
621 查看
第一题:
输出结果:10 1
考察知识点两点,第一有关函数作用域中this的指向问题,第二考察arguments问题。
通常我们判断函数中this,往往看调用该函数的对象,而非函数在哪里执行。
此处fn在obj.method中执行,fn此处并非归属于obj,属于外来传进的参数。
而在函数外声明的变量有个大的归属–window
所以 第一个fn执行的时候 this指向的是window。
arguments标准来说是类数组,在method函数里,arguments[0]即是fn(为什么是fn,自行搜索arguments的介绍),但此时执行arguments0,调用的对象指向的是arguments,arguments类数组的特性,使其length就等同于该函数参数的个数。
因此
所以输出就是10 和1
var length=10; function fn(){ alert(this.length); } var obj={ length:3, method:function(fn){ fn(); arguments[0](); } } obj.method(fn); //输出结果
输出结果:10 1
考察知识点两点,第一有关函数作用域中this的指向问题,第二考察arguments问题。
通常我们判断函数中this,往往看调用该函数的对象,而非函数在哪里执行。
此处fn在obj.method中执行,fn此处并非归属于obj,属于外来传进的参数。
而在函数外声明的变量有个大的归属–window
所以 第一个fn执行的时候 this指向的是window。
arguments标准来说是类数组,在method函数里,arguments[0]即是fn(为什么是fn,自行搜索arguments的介绍),但此时执行arguments0,调用的对象指向的是arguments,arguments类数组的特性,使其length就等同于该函数参数的个数。
因此
var obj={ length:3, method:function(fn){ window.fn();//window.length 10 arguments.fn();//arguments.length 1 } }
所以输出就是10 和1
相关文章推荐
- JS实现鼠标经过用户头像显示资料卡的效果,可点击
- 16 JSON解析、XML解析(DOM解析,SAX解析)
- js模块化之模块依赖处理
- 深入理解javascript之typeof和instanceof
- js基础2-深入理解javascript之typeof和instanceof
- Javascript 那些事-开篇
- ArcGIS JavaScript API 4.0 beta3 新特性
- javascript 涉及float的精确加减乘除运算
- 对javascript匿名函数的理解
- javascript大神修炼记(5)——OOP思想(封装)
- jstree的checkbox实例+详解
- javascript iframe 操作(一)
- 高效率去掉js数组中重复项
- Ext.js5的表格插件—checkbox/编辑等常见需求(15)
- JavaScript Cookies
- javascript制作验证码
- package.json依赖管理dependencies中 ^ 和 ~ 的区别
- Ext.js5的表格插件—展开和冻结和Ext.XTemplate(14)
- 摘抄的一些js
- 用JavaScript动态加载CSS和JS文件