JS中this的几种使用方式
2017-08-28 20:32
621 查看
this的使用总结
this的绑定一般有四种情况:默认绑定(非严格情况下指向的是window,严格情况下指向undefined)
隐式绑定,对象.方法(),this指向前面那个对象
new绑定,this绑定在新创建的那个对象上
显示绑定,call和apply 都是仅一次调用使用了显示绑定,对原函数没影响
call与apply主要的区别是:call的参数是一个一个传递,apply是把参数封装到数组中传递
bind: 固定绑定 es6新增
调用函数对象的bind方法, 返回一个固定this绑定的新的函数
对原来的函数没有影响
绑定的优先级别 bind > call, apply > new > 隐式
<script> //对象的绑定 var obj = { name: "a" } function foo(){ console.log(this.name); } var f = foo.bind(obj); var obj2 = { name: "b", foo : f }; o 4000 bj2.foo() //a 固定绑定的优先级更高 var obj = { name : "a", foo : function (){ this.age = 20; console.log(this); //foo 3 } } console.log(obj.foo()); //obj对象 1 var foo = obj.foo; //重新定义了foo,默认绑定this指向window console.log(foo()); //window 2 var obj1 = new foo() console.log(obj1); //foo 4 /*function foo(){ this.name = "abc" console.log(this); } var obj = new foo(); console.log(obj); //foo{name = "abc"} foo{name = "abc"}*/ var obj1 = { name: "李四", foo: function (){ console.log(this.name); } } var obj2 = { name: "张三", foo: obj1.foo } obj2.foo() //张三 隐式绑定,调用obj2的name // "use strict" // function foo(){ // console.log(this); // } // foo() </script
显示绑定到undefined或null上,会使用默认绑定
var obj = { name : "李四", foo : function (){ console.log(this); } } obj.foo.call(undefined); //window //处理this在回调函数中容易犯的错误例子 var name = "zs" var obj = { name : "李四", /!* show : function (){ var self = this; setInterval(function (){ console.log(self.name); }, 1000) }*!/ show : function (){ setInterval(function (){ console.log(this.name); }.bind(this), 1000) } } obj.show();
相关文章推荐
- 关于JS中this的几种方式
- 【js】setTimeout几种使用方式
- JS中this上下文对象使用方式
- js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式
- JS对字符串编码的几种方式使用指南
- JS 中 this上下文对象的使用方式
- 使用js实现页面跳转的几种方式
- JS对字符串编码的几种方式使用指南
- js定时的几种方式及插件变量公用(直接使用jsp中js变量)
- JS 中 this上下文对象的使用方式
- js实现页面跳转的几种方式
- js实现页面跳转的几种方式
- js实现页面跳转的几种方式
- js实现页面跳转的几种方式
- js实现页面跳转的几种方式
- 问题2:你使用过几种方式在网上发布信息?都有什么?你认为还有那些工具需要学习的?每问必答,长短不限
- js实现页面跳转的几种方式
- js实现页面跳转的几种方式
- JScript中的"this"关键字使用方式补充材料
- js实现页面跳转的几种方式