关于 js 函数参数的this
先看一道面试题:
var number = 10;
function fn() {
console.log(this.number);
}
var obj = {
number: 2,
show: function(fn) {
this.number = 3;
fn();
arguments[0]();
}
};
obj.show(fn);
打印的结果如下:

obj.show 中,第一个函数执行 fn() 结果为 10,第二个 arguments[0]() 执行结果为 undefined。
原因是:
第一个 fn 在执行时,this 指向 window,window,number 为10;
第二个 fn 在执行时,实际上为 argements.0 在执行,也就是此时的 this 为 arguments(毕竟 arguments 为伪数组,伪数组也还是对象,可理解为 obj.0)。因为 arguments 的属性中没有 number 这个属性,所以返回 undefined
关于 js 函数参数的this的更多相关文章
- (转)js函数参数设置默认值
原文:http://www.cnblogs.com/RightDear/archive/2013/06/26/3156652.html js函数参数设置默认值 php有个很方便的用法是在定义函数时 ...
- js函数参数设置默认值
php有个很方便的用法是在定义函数时可以直接给参数设默认值,如: function simue ($a=1,$b=2){ return $a+$b;}echo simue(); //输出3echo ...
- js 函数参数形式
1. var a = function(b,c){ console.log(arguments);}a("1","cc"); -> ["1&q ...
- JS 函数参数
1.简单的无参函数调用 function Test1(Func) { Func(); } function Test2() { alert("我要被作为函数参数啦!"); } // ...
- JS函数参数
1.js不是面向对象,不可以重载函数.如果两个函数方法名相同,参数不同,那么js加载时后面的函数会覆盖前面的函数. 所以调用函数时只会调用后面的方法. 2.js设置可变参数时,可以用arguments ...
- js 函数参数为什么是按值传递?
首先说下,在js中有两大类数据类型: 基本类型和引用类型. 其次,基本类型有5种: Undefined,Null,Boolean,Number.String, 引用类型有一种: Object(Func ...
- js 函数参数 arguments[0]
function box() { return arguments[0] + '|' + arguments[1]; } al ...
- js函数参数理解
eg: function setName(obj){ obj.name = "Nicholas"; obj = new Object(); obj.name = "Gre ...
- JS 函数参数 及 函数数组
<script> function a(){ alert("a"); } function b(){ alert("b"); } var arr = ...
随机推荐
- Mybatis动态sql及分页、特殊符号
目的: mybatis动态sql(案例:万能查询) 查询返回结果集的处理 mybatis的分页运用 mybatis的特殊符号 mybatis动态sql(案例:万能查询) 根据id查询 模糊查询 (参数 ...
- Map、Set的基本概括
Map: 在运用map和set 集合之前首先要弄清楚它们的基本定义是什么. 简介:map是一种关联式容器,但是她储存方式是以键值对(key/value)存在的. Map用法: 定义Map集合并往集合中 ...
- PAT-1030 Travel Plan (30 分) 最短路最小边权 堆优化dijkstra+DFS
PAT 1030 最短路最小边权 堆优化dijkstra+DFS 1030 Travel Plan (30 分) A traveler's map gives the distances betwee ...
- java SE,EE,ME区别
Java SE(Java Platform,Standard Edition):java平台标准版: Java EE(Java Platform.Enterprise Edition):java平台企 ...
- iOS音频学习笔记二:iOS SDK中与音频有关的相关框架
上层: Media Player Framework: 包含MPMoviePlayerController.MPMoviePlayerViewController.MPMusicPla ...
- c# 方法的隐藏
- c# 字段成员
- vue + jenkins 自动部署到指定的目录
1. 首先选择自由风的构建方式 2. 我的源码在gitlab上,在源码管理下,提供仓库URL和凭证,以及gitlab的分支 3. 在构建环境下选择提供Node &npm bin/folder ...
- 关于日期格式yyyy-MM-dd和YYYY-MM-dd
原文:https://blog.csdn.net/guotufu/article/details/85696296 开发的时候用到这个类进行日期的转换,想转换的日期格式为“YYYY/MM/dd”,结果 ...
- java项目中注解使用——整理
文章:@Mapper注解的使用 地址:https://blog.csdn.net/weixin_39666581/article/details/81057385 @Mapper注解的的作用 1:为了 ...