js this 指向的到底是什么
来源:互联网 发布:手机网络参数怎么设置 编辑:程序博客网 时间:2024/05/14 03:10
JS中, this的值到底是什么?
几个月之前, 拜读了《javascript语言精髓》, 里面对于这个问题, 做出了很好的解释...
JS中, this的值取决于调用的模式, 而JS中共有4中调用模式:
1. 方法调用模式
当一个函数被保存为对象的一个属性时, 我们称它为一个方法, 当一个方法被调用时, this指向该对象, 如:
var obj = { value: 1, getValue: function() { alert(this.value); }};obj.getValue(); // 输出1, 此时的this指向obj
注意: 该模式中, this到对象的绑定发生在方法被调用的时候.
2. 函数调用模式
当一个函数并非一个对象的属性时, 它被当作一个函数来调用, 此时的this指向全局对象(window), 如:
window.value = 1;function getValue() { alert(this.value); }getValue(); // 输出1, 此时的this指向window.
3. 构造器调用模式
结合new前缀调用的函数被称为构造器函数, 此时的this指向该构造器函数的实例对象, 如:
function show(val) { this.value = val;};show.prototype.getVal = function() { alert(this.value);};var func = new show(1);func.getVal(); // 输出1alert(func.value) // 输出1// 从上面的结果, 可以看出, 此时的this指向了func对象.
4. apply/call调用模式
apply和call方法可以让我们设定调用者中的this指向谁, 如:
var fun = function(str) { this.status = str;}fun.prototype.getStatus = function() { alert(this.status);}var obj = { status: "loading"};fun.prototype.getStatus.apply(obj); // 输出"loading", 此时getStatus方法中的this指向了obj
0 0
- js this 指向的到底是什么
- [JS]this 的值到底是什么?
- JS this的指向
- js的this指向
- JS:this关键字的指向
- js中this的指向
- js中this的指向
- js中this的指向
- js this的指向详解
- js中this的指向
- js中 this 的指向
- js中this的指向
- js中this的指向
- JS中this的指向
- Js中this的指向
- js中的this指向和改变this指向的方法
- this 的值到底是什么?一次说清楚
- JavaScript中的this到底指的是什么!
- openssl数字证书常见格式与协议介绍
- C++11 中std::function和std::bind的用法
- 微信图片选择器
- 数据库 - 关系数据库标准语言SQL
- 线程池
- js this 指向的到底是什么
- 两个iframe互相调用传值及iframe父子窗口调用
- AIX5.3(64位)安装tomcat(包括安装JDK)全过程
- 向量和矩阵梯度:标量Hesse矩阵和矢量Jacobian矩阵
- 如何解决万能地图下载器下载的影像加载到ArcGIS “变色”的问题
- HTTP协议5-HTTP状态码
- 诚信网站认证在现如今互联网诈骗时代越来越重要
- 服务器架构介绍
- kali Linux上安装java