普通函数的this指向调用时所在的对象。
a.谁调用就指向谁
b. .前面是谁,就指向谁

1.全局函数 this 指向window
原因:调用函数时省略了window,

 fu()===window.fn()

2.在对象中 this指向当前对象
原因:调用时 对象.方法名
3.事件中 this 指向 发生事件的DOM对象
原因:

btn.onclick=function(){}

4.闭包 this指向 window
原因:

function a(){var  x=123;return function (){console.log(x);console.log(this);}}a()()var fn=a()fn()

5.计时器 指向window
原因:

(被隐藏的window).setTimeOut(function(){},1000);

改变this指向
call apply bind
区别是
call 和 apply 是自动调用
bind 是手动调用
call 传参用逗号隔开,
apply 传参用数组
例子:

var obj={"name":"liu"};
function  fn(a,b){console.log("a:",a,"b",b);console.log(this);
}
fn(1,2)//fn函数里的this指向obj对象fn.call(obj,1,2)
fn.apply(obj,[1,2])
fn.bind(obj,1,2)()
fn.bind(obj)(1,2)

普通函数的this指向以及更改this指向相关推荐

  1. javascript函数的进阶使用方法(this指向,深浅拷贝等)

    JavaScript函数进阶 函数的定义和调用 函数的定义方式 函数的调用 this 函数内部的this指向 改变函数内部 this 指向 call方法 apply方法 bind方法 call.app ...

  2. JavaScript对象this指向(普通键this指向 非指向函数的键)

    1.结论 JavaScript对象普通键(非指向函数的键)this指向是window. 2.示例 <!DOCTYPE html> <html lang="zh"& ...

  3. 写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为int strcmp(char * p1 ,char * p2); 设p1指向字符串s1, p2指向字符串s2。要求当s1=s2

    写一函数,实现两个字符串的比较.即自己写一个strcmp函数,函数原型为int strcmp(char * p1 ,char * p2); 设p1指向字符串s1, p2指向字符串s2.要求当s1=s2 ...

  4. 函数指针、函数返回指针、const指针、指向const指针,指向const的const指针。

    ①函数指针 函数指针是指向函数的指针变量. 因而"函数指针"本身首先应是指针变量,只不过该指针变量指向函数.这正如用指针变量可指向整型变量.字符型.数组一样,这里是指向函数.如前所 ...

  5. this指向及改变this指向的方法

    原先总结过this指向问题,但看了大佬们写的之后,觉得自己遗漏了很多点,所以,结合大佬们的,重写一遍 一.函数的调用方式决定了 this 的指向不同: 1.普通函数调用,此时 this 指向 wind ...

  6. js this指向哪里 JavaScript this指向

    非箭头函数中的this指向一般都是调用者 在非箭头函数中 谁调用了函数,那么函数的this指向就是谁 比如       let obj1 = {         name:'obj1',       ...

  7. this指向和改变其指向的方法

    this笔记(仅作为个人学习使用) 一.this 的指向 在 ES5 中,其实 this 的指向,始终坚持一个原理:this 永远指向最后调用它的那个对象. 下面这个例子,这里的 a() 是被wind ...

  8. this 指向以及修改this 指向的方法

    [this指向的学习,以及修改this指向的方法] 目录 一.this 指向:谁调用指向谁 1.全局中指向 window 2.普通函数 this 指向最后调用的(函数在声明的时候是没有 this 指向 ...

  9. C++(纯)虚函数重写时访问权限更改问题

    我们知道在Java中是自动实现多态的,Java中规定重写的方法的访问权限不能缩小.那么在C++中我们实现多态的时候是否可以更改(缩小)访问权限呢? 经过测试,得到的答案如下:如果用基类指针指向派生类对 ...

最新文章

  1. JQuery轻量级网页编辑器 选中即可编辑
  2. 来谈下高并发和分布式中的幂等处理
  3. PAT:1053. Path of Equal Weight (30) AC
  4. Google Code Jam 2014 总结
  5. Python之sklearn2pmml:sklearn2pmml库函数的简介、安装、使用方法之详细攻略
  6. SAP CRM Business transaction save mode
  7. macOSX中使用python matplotlib模块的问题解决
  8. cc、gcc、g++、CC的区别概括
  9. 【转】认识 C++ 中的 explicit 关键字
  10. 大数据量表的优化查询
  11. 系统辨识的最小二乘法原理及其算法实现
  12. 百度风云榜前50名小偷——专门用于提高你网站的流量!
  13. WSL:适用于 Linux 的 Windows 子系统
  14. 用户画像设计与搭建(附金融行业用户画像案例)
  15. C++中endl、ends和flush作用:
  16. grep -q 大小比较
  17. 网络职业成长规划经验谈
  18. vue+echarts制作大屏利用css3 scale 进行屏幕自适应
  19. js数据过滤算法搭建
  20. sparksql hive mysql_SparkSql 整合 Hive

热门文章

  1. PreparedStatement的executeQuery、executeUpdate和execute
  2. css实现html透明效果
  3. python中面向对象的思想汇报_python试卷
  4. gPTP的理解和使用
  5. 计算机基础知识(基础入门小白专属)七
  6. 利用 yaml-cpp 开源库读写 yaml 配置文件—— 读写部分
  7. 一个匹配数字的正则表达式(带详细解释)
  8. openstack-mitaka(二) 基于vmware的搭建
  9. Apollo(一)-基本介绍
  10. 【Apollo学习笔记】从零开始Apollo系统安装