// 考题1
/*function Fn() {
console.log(this);//window
}
Fn();
new Fn();//Fn实例
Fn.apply(Fn); //将this指向Fn,所以输出function Fn(){console.log(this)}

/*---------------------------------------------------------*/

// 考题2
/*var o = {
f : function () {
console.log(this);
},
2 : function () {
console.log(this);
}
};
o.f();//o
o[2]();//o
new o[2]();//new出来的新实例
o.f.call([1,2]);/[1,2](更改了this指向)
o[2].call([1,2,3,4]);*///[1,2,3,4]

/*---------------------------------------------------------*/

/*var name ='out';
var obj ={
name:'in',
prop:{
name:'inside',
getName:function(){
return this.name;
}
}
};
console.log(obj.prop.getName());
var test = obj.prop.getName;
console.log(test());
console.log(obj.prop.getName.apply(this));*/

/*-------------------------------------------------------*/

// 考题3
/*var length = 10;
function fn() {
console.log(this.length);
}
var obj = {
length: 5,
method: function (f) {
f();//10
// arguments[0] 可以获取到传入method方法的第一个实参
arguments[0]();//1  (arguments是一个伪数组对象,他的第一个参数是fn函数,他调用fn函数,所以this指的是arguments)
arguments[0].call(this);//5(改变fn的指向,这里的this是method)
}
};
obj.method(fn);*/

/*---------------------------------------------------------*/

// 考题4
var scope = 'global';
function log() {
console.log(this.scope + ':' + arguments[0]);
}
var dog = {
scope : 'dog',
yelp : function () {
var scope = 'dog.yelp';
log('wow');
}
};

dog.yelp();//global:wow
dog.yelp.apply(dog);//global:wow
log.call(dog, 'created');//dog:created

/*---------------------------------------------------------*/

最新文章

  1. 【转载】Android 自动化测试 Emmagee
  2. ahjesus 获取当前方法被调用执行的具体位置,包括命名空间和方法
  3. Hive 安装配置记录
  4. FreeModbus 移植于STM32 实现Modbus RTU通信
  5. 【解决】Oracle服务器ip地址被占用
  6. Web---Cookie技术(显示用户上次登录的时间、显示用户最近浏览的若干个图片(按比例缩放))
  7. html+css3实现网页时钟
  8. U3D 背景音效和事件触发音效
  9. css 优先级
  10. Yii2权威指南中文版及众包翻译平台
  11. 浅谈JavaScript中继承的实现
  12. JAVAEE——spring02:使用注解配置spring、sts插件、junit整合测试和aop演示
  13. MongoDB数据库的安装、配置和使用
  14. 微信小程序监听input输入并取值
  15. 解决ps不能直接把文件拖进去的问题
  16. BZOJ2178 圆的面积并(simpson积分)
  17. Python cx_oracle自动化操作oracle数据库增删改查封装,优化返回查询数据
  18. 交叉编译Node.js到OpenWrt(HG255D)
  19. bash's parameter expansion
  20. Json.Net 中Linq to JSON的操作

热门文章

  1. Linux之 sort,uniq,cut,wc命令详解
  2. db2常用命令(1)
  3. [已解决] MyBatis 中bind用法
  4. java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)
  5. 2016年12月17日 星期六 --出埃及记 Exodus 21:12
  6. php实战正则表达式:验证手机号
  7. for与if、else的使用
  8. SQL Server 查询表的记录数(3种方法,推荐第一种)
  9. linux python pip包安装
  10. 封装对MongoDB数据库的增删改查访问方法(基于MongoDB官方发布的C#驱动)