this是一个关键字,表示执行当前函数的对象 – 严格模式下,this指向undefiend – 隐式丢失:某函数被当做参数传递给另一个函数,则会丢失原本的执行对象,指向window – 注意:不是所有的回调函数中this都指向window,某些特定情况下被系统修改了。 例1: 例2:针对上方隐式绑定的隐式丢失问题,可以这样解决
1. 默认绑定:没有明确被隶属对象执行的函数,this指向window
function fn(){ console.log(this); //window console.log(typeof this); //object } fn();
"use strict"; function fn(){ console.log(this); //undefined } fn();
2. 隐式绑定:明确被隶属对象执行的函数,this指向执行对象
var obj = { fn:function(){ console.log(this); } } obj.fn(); //this指向obj
var obj = { fn:function(){ console.log(this); } } function test(cb){ cb(); } test(obj.fn); //this指向window
document.addEventListener("click",function(){ console.log(this); //this指向document });
3. 显示绑定(强制绑定):利用函数的方法改变this的指向(解决了this隐式丢失的问题)
function fn(a){ console.log(this); console.log(typeof this); //object } fn.call("hello"); //this指向hello
var obj = { fn:function(){ console.log(this); } } function test(cb){ cb.call(obj); //this指向obj } test(obj.fn);
4. new绑定:函数被new执行后,函数内部的this指向new出的实例
function Fn(){ console.log(this); console.log(typeof this); //object } new Fn(); //this指向Fn{}
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算