1、在一般函数中使用 this 指全局对象 window

function fn(){
this.x = 1
}
fn(); //相当于window.fn()

2、作为对象方法使用 this 指该对象

function fn(){
alert(this.x) //this是调用该函数的obj对象 输出test
}
var obj = {'fn':fn,'x':'test'}
obj.fn();

3、作为构造函数使用 this 指new 函数出的对象

function fn(){
this.x = 123; //this是调用该函数的obj对象
}
var obj = new fn(); //obj = {x:123}

4、apply 调用函数,apply 方法作用是改变函数的调用对象,此方法第一个参数为改变后的调用函数的对象,函数里this指第一个参数

var x = 11;
function fn(){
alert(this.x)
}
var obj = {'fn':fn,'x':22}
var obj2 = {'x':33}
obj.fn.apply(); // 11 ,apply()参数为空时,默认调用的是全局对象,this当前指全局对象
obj.fn.apply(obj); // 22
obj.fn.apply(obj2); // 33

JS中 this 的四种用法的更多相关文章

  1. js中this 的四种用法

    this 在函数执行时,this 总是指向调用该函数的对象.要判断 this 的指向,其实就是判断 this 所在的函数属于谁. 在<javaScript语言精粹>这本书中,把 this  ...

  2. JS中this的四种用法

    1.在一般函数方法中使用 this 指代全局对象 2.作为对象方法调用,this 指代上级对象 3.作为构造函数调用,this 指代new 出的对象 4.apply 调用 ,apply方法作用是改变函 ...

  3. javascript中this的四种用法

    javascript中this的四种用法 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2015-05-11我要评论 在javascript当中每一个function都是一个对象,所 ...

  4. js中this的四种使用方法

    0x00:js中this的四种调用模式 1,方法调用模式 2,函数调用模式 3,构造器调用模式 4,apply.call.bind调用模式 0x01:第一种:方法调用模式 (也就是用.调用的)this ...

  5. 【温故知新】——原生js中常用的四种循环方式

    一.引言 本文主要是利用一个例子,讲一下原生js中常用的四种循环方式的使用与区别: 实现效果: 在网页中弹出框输入0   网页输出“欢迎下次光临” 在网页中弹出框输入1   网页输出“查询中……” 在 ...

  6. C#中 this关键字 四种用法

    /// <summary> /// 主程序入口 /// </summary> /// <param name="args"></param ...

  7. c++中for的四种用法

    #include <algorithm> #include <vector> #include <iostream> using namespace std; in ...

  8. js中继承的几种用法总结(apply,call,prototype)

    一,js中对象继承 js中有三种继承方式 1.js原型(prototype)实现继承 <SPAN style="BACKGROUND-COLOR: #ffffff">& ...

  9. js中this的四种调用模式

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. mysql-copy to tmp table

    今天数据后台数据反映有些迟缓后查看链接 processlist 发下好多 锁 和磁盘写入,   参考文章 : http://bbs.chinaunix.net/forum.php?mod=viewth ...

  2. 线段树[To be continued]

    目录 数据结构--线段树 一.定义 二.性质 三.基本操作 0.结构体 1.建树 2.单点查询 3.单点修改 4.区间修改 5.区间查询 四.题目 单点修改.区域查询模板 五.鸣谢 学姐的Blog 百 ...

  3. Java-读取txt生成excel

    本段代码的目的是从txt文本中读取相应格式的数据,然后写入到对应格式的excel文档中 在敲本段代码的时候,也学习了一些其它知识点,如下: 1.byte[] b_charset= String.get ...

  4. cacheData

    <%@ page language="java" import="java.util.*,com.fiberhome.bcs.appprocess.common.u ...

  5. sql server备份

    完全备份 declare @device varchar(255),@path varchar(255),@dbname varchar(255)set @dbname='MIS_TEMP'set @ ...

  6. 【Single Number】cpp

    题目: Given an array of integers, every element appears twice except for one. Find that single one. No ...

  7. APM简介

    1.什么是APM APM (应用性能管理) - Application Performance Management & Monitoring在信息科学和系统控制领域,APM致力于监控和管理应 ...

  8. [python][django学习篇[13]增加markdown_1

    1 进入虚拟环境,安装markdwon  python install markdown 2 修改视图函数detail def detail(request, pk): # get_object_or ...

  9. 【转】C# client 与java netty 服务端的简单通信,客户端采用Unity

    http://blog.csdn.net/wilsonke/article/details/24721057 近日根据官方提供的通信例子自己写了一个关于Unity(C#)和后台通信的类,拿出来和大家分 ...

  10. jquery版手风琴效果

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...