在js中this的指向对于新手来说一定是个难题,但是如果你真正理解了的话,也就没什么问题啦,下面就来讲讲this吧。

JS中,this的值取决于调用的模式(调用对象),而JS中共有4种调用模式:
1.函数调用模式
当一个函数不是一个对象的属性时,当作函数俩调用,这时函数内的this指向全局对象(大对数情况下是window)
window.value=1;
function getValue(){
console.log(this.value);
}
getValue();//输出1,此时的this指向window
2.方法调用模式
当一个函数是一个对象的属性时,我们称它为该对象的一个方法,当一个方法被调用时,this指向该对象
var Obj={
value:2,
getValue:function(){
console.log(this.value);//输出2,this指向Obj
}
}
!!!该模式中,this到对象的绑定发生在方法被调用时
3.构造器调用模式
使用new调用的函数称为构造器函数,此时的this指向该构造器函数实例出来的对象
function main(val){
this.value=val;
}
main.prototype.getValue=function(){
console.log(this.value);
}
var fun=new main(3);
fun.getValue();
fun.value;//输出3,this指向main的实例对象fun
4.apply/call调用模式以及bind
apply、call、bind方法可以让我们设定调用者中的this指向谁
function showValue(){
console.log(this.value);
}
var obj={
value:4
}
showValue.call(obj)//输出4,this指向了obj对象
ECMA5中新增了bind方法,具体用法可以google一下,这里是演示this绑定的用法
function showValue(){
console.log(this.value);
}
var obj={
value:4
}
var showValue2=showValue.bind(obj);
showValue2()//输出4,this指向了obj对象
bind有很多种用法,可以自己去查阅一下哦
以上这篇老生常谈 js中this的指向就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
相关推荐:
JQuery 解析多维的Json数据格式
xampp apache启动失效问题的解决方法
SQL 随机查询 包括(sqlserver,mysql,access等)
Aspx/Asp.net 防注入程序 V1.0
让iframe子窗体取父窗体地址栏参数(querystring)
彻底解决页面文字编码乱码问题
php self,$this,const,static,->的使用
JavaScript中的JSON 中文版翻译
让Firefox支持event对象实现代码
页面中js执行顺序
php面向对象全攻略 (四)构造方法与析构方法
jQuery 标题的自动翻转实现代码
点击文章内容处弹出页面代码
关于Appserv无法打开localhost问题的解决方法
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
Javascript select下拉框操作常用方法
通用javascript脚本函数库 方便开发
php 将excel导入mysql
html数组字符串拼接的最快方法
php面向对象全攻略 (八)重载新的方法
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
javascript 关于# 和 void的区别分析
Oracle 存储过程加密方法
windows 复制隐藏帐号完全批处理
sql中all,any,some用法
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
var与Javascript变量隐式声明
mysql sql语句总结
ExtJS 配置和表格控件使用第1/2页
使用regini.exe修改注册表命令
PHP 字符截取 解决中文的截取问题,不用mb系列
用JavaScript隐藏控件的方法
php 引用(&)详解
javascript 定时自动切换的选项卡Tab
COM域名热度不减 聚集域名投资无限商机
php面向对象全攻略 (七) 继承性
Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法
javascript GUID生成器实现代码
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
asp.net 页面间传值方法小结
图片与JavaScript配合做出个性滚动条
jQuery 使用手册(五)
Python中的Function定义方法第1/2页
sqlserver2005 行列转换实现方法
支持IE,Firefox的javascript 日历控件
Riot.js 快速的JavaScript单元测试框架
正则表达式 传智播客学习
PHP小程序自动提交到自助友情连接
regini dos下更改注册表权限的工具
javascript 网页上跳动的文字