普通函数的this指向以及更改this指向
普通函数的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指向相关推荐
- javascript函数的进阶使用方法(this指向,深浅拷贝等)
JavaScript函数进阶 函数的定义和调用 函数的定义方式 函数的调用 this 函数内部的this指向 改变函数内部 this 指向 call方法 apply方法 bind方法 call.app ...
- JavaScript对象this指向(普通键this指向 非指向函数的键)
1.结论 JavaScript对象普通键(非指向函数的键)this指向是window. 2.示例 <!DOCTYPE html> <html lang="zh"& ...
- 写一函数,实现两个字符串的比较。即自己写一个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 ...
- 函数指针、函数返回指针、const指针、指向const指针,指向const的const指针。
①函数指针 函数指针是指向函数的指针变量. 因而"函数指针"本身首先应是指针变量,只不过该指针变量指向函数.这正如用指针变量可指向整型变量.字符型.数组一样,这里是指向函数.如前所 ...
- this指向及改变this指向的方法
原先总结过this指向问题,但看了大佬们写的之后,觉得自己遗漏了很多点,所以,结合大佬们的,重写一遍 一.函数的调用方式决定了 this 的指向不同: 1.普通函数调用,此时 this 指向 wind ...
- js this指向哪里 JavaScript this指向
非箭头函数中的this指向一般都是调用者 在非箭头函数中 谁调用了函数,那么函数的this指向就是谁 比如 let obj1 = { name:'obj1', ...
- this指向和改变其指向的方法
this笔记(仅作为个人学习使用) 一.this 的指向 在 ES5 中,其实 this 的指向,始终坚持一个原理:this 永远指向最后调用它的那个对象. 下面这个例子,这里的 a() 是被wind ...
- this 指向以及修改this 指向的方法
[this指向的学习,以及修改this指向的方法] 目录 一.this 指向:谁调用指向谁 1.全局中指向 window 2.普通函数 this 指向最后调用的(函数在声明的时候是没有 this 指向 ...
- C++(纯)虚函数重写时访问权限更改问题
我们知道在Java中是自动实现多态的,Java中规定重写的方法的访问权限不能缩小.那么在C++中我们实现多态的时候是否可以更改(缩小)访问权限呢? 经过测试,得到的答案如下:如果用基类指针指向派生类对 ...
最新文章
- JQuery轻量级网页编辑器 选中即可编辑
- 来谈下高并发和分布式中的幂等处理
- PAT:1053. Path of Equal Weight (30) AC
- Google Code Jam 2014 总结
- Python之sklearn2pmml:sklearn2pmml库函数的简介、安装、使用方法之详细攻略
- SAP CRM Business transaction save mode
- macOSX中使用python matplotlib模块的问题解决
- cc、gcc、g++、CC的区别概括
- 【转】认识 C++ 中的 explicit 关键字
- 大数据量表的优化查询
- 系统辨识的最小二乘法原理及其算法实现
- 百度风云榜前50名小偷——专门用于提高你网站的流量!
- WSL:适用于 Linux 的 Windows 子系统
- 用户画像设计与搭建(附金融行业用户画像案例)
- C++中endl、ends和flush作用:
- grep -q 大小比较
- 网络职业成长规划经验谈
- vue+echarts制作大屏利用css3 scale 进行屏幕自适应
- js数据过滤算法搭建
- sparksql hive mysql_SparkSql 整合 Hive