第一种:函数直接调用执行的模式

function add(a,b){
console.log(this);
return a+b;
}
add(,)
//this===window 这里的this指向是window的

第二种:对象方法的调用模式

var people={
name:'wang',
sex:'男',
eat:function(){
console.log(this);
}
}
people.eat();
//this===对象,对象方法调用时,this指向被调用者

第三种:构造器的调用模式

function People(){
this.eat=function(){
console.log(this);
}
}
var wang=new People();
wang.eat();
//对象调用自己的方法,this===wang,谁new的this指向谁

第四种:call和apply调用模式

  call方法有多个参数,第一个是要绑定给this的值,后面跟是若干。

  apply方法有两个参数,第一个是要绑定给this的值,第二个是一个参数数组可以放若干。

 function change(a,b){
this.detial=a*b;
console.log(this);
}
var p={};
change.call(p,,);//此处的this===p
console.log(p.detial);
var q=[];
change.call(q,,)//this===q
console.log(q.detial); //apply和call一样的用法,只不过apply第二个参数用数组进行传递
var arr=[];
change.apply(arr,[,]);//this===arr
console.log(arr.detial); var str={};
change.apply(str,[,]);//this===str
console.log(str.detial);

最新文章

  1. kindeditor4整合SyntaxHighlighter,让代码亮起来
  2. Zookeeper常用命令
  3. ios 计算缓存大小并清理缓存
  4. 修改mozilla firefox的设置
  5. 判断是否存在哈密顿路--HDU 5424
  6. EF架构~LinqToEntity里实现left join的一对一与一对多
  7. IOS开发UI基础UIView
  8. App Previews操作经验
  9. Android——ViewGroup的一个用法实例(转载)
  10. [1.1]Knowledge that should be prepared
  11. NSString 筛选和最后一个空白、空行,多换行成一个新行
  12. takes 3 positional arguments but 4 were given错误
  13. python画出心形图
  14. teeporxy.go
  15. FineUIPro v5.1.0 发布了!
  16. scala-jdbc-scalike操作jdbc数据库
  17. 类的内置方法__attr__介绍
  18. Python中的对象行为与特殊方法(一)对象的创建与销毁
  19. 此实现不是Windows平台FIPS验证的加密算法的一部分
  20. code1173 最优贸易

热门文章

  1. caffe训练CIFAR数据库
  2. 【POJ 1082】 Calendar Game
  3. Linux中文件上传使用rz
  4. dubbo 解决既是消费者又是提供者 Duplicate application configs 的问题
  5. 微信小程序实现图片双滑缩放大小
  6. javascript中缓存
  7. CPU VS GPU
  8. ZBrush中的实时遮罩
  9. PHP SOAP如何传入复杂对象
  10. event 下鼠标坐标的获取