js中this,箭头函数和普通函数

四种基本用法

1. 一般方法中,this代指全局对象 window

2. 作为对象方法调用,this代指当前对象

3. 作为构造函数调用,this 指代new 出的对象

function test(){
  this.x = 1;
}
var o = new test();
alert(o.x); //1

4. 调用方法的apply和call方法,可以改变函数的调用对象/作用域 (this)用法:

  f.apply([thisObj [,argArray] ]);

  f.call([thisObject[,arg1 [,arg2 [,...,argn]]]]);

当省略 thisObj 或为 null 时,全局对象window作为调用对象/作用域 (this)

es6 箭头函数  ,普通函数

廖雪峰 箭头函数

箭头函数的this总是指向词法作用域,也就是外层调用者obj

由于this在箭头函数中已经按照词法作用域绑定了,所以,用call()或者apply()调用箭头函数时,无法对this进行绑定,即传入的第一个参数被忽略

深入理解javascript作用域系列第二篇——词法作用域和动态作用域

原文地址:https://www.cnblogs.com/loveluking/p/9692112.html

时间: 2024-07-31 03:12:13

js中this,箭头函数和普通函数的相关文章

js中escape对应的C#解码函数 UrlDecode

js中escape对应的C#解码函数 System.Web.HttpUtility.UrlDecode(s),使用过程中有以下几点需要注意 js中escape对应的C#解码函数 System.Web.HttpUtility.UrlDecode(s) //注意编码 需要注意的几点: 1.HttpUtility.UrlEncode,HttpUtility.UrlDecode是静态方法,而Server.UrlEncode,Server.UrlDecode是实例方法. 2.Server是HttpServ

js中bind、call、apply函数的用法

最近一直在用 js 写游戏服务器,我也接触 js 时间不长,大学的时候用 js 做过一个 H3C 的 web 的项目,然后在腾讯实习的时候用 js 写过一些奇怪的程序,自己也用 js 写过几个的网站.但真正大规模的使用 js 这还是第一次.我也是初生牛犊不怕虎,这次服务器居然抛弃 C++ 和 lua 的正统搭配,而尝试用 nodejs 来写游戏服务器,折腾的自己要死要活的我也是醉了. 在给我们项目组的其他程序介绍 js 的时候,我准备了很多的内容,但看起来效果不大,果然光讲还是不行的,必须动手.

js中bind、call、apply函数的用法 (转载)

最近看了一篇不错的有关js的文章,转载过来收藏先!!! 最近一直在用 js 写游戏服务器,我也接触 js 时间不长,大学的时候用 js 做过一个 H3C 的 web 的项目,然后在腾讯实习的时候用 js 写过一些奇怪的程序,自己也用 js 写过几个的网站.但真正大规模的使用 js 这还是第一次.我也是初生牛犊不怕虎,这次服务器居然抛弃 C++ 和 lua 的正统搭配,而尝试用 nodejs 来写游戏服务器,折腾的自己要死要活的我也是醉了. 在给我们项目组的其他程序介绍 js 的时候,我准备了很多

js中的join(),reverse()与 split()函数用法解析

<script> /* * 1:arrayObject.reverse() * 注意: 该方法会改变原来的数组,而不会创建新的数组. * 2:arrayObject.join() * 注意:join() 方法用于把数组中的所有元素放入一个字符串. * 元素是通过指定的分隔符进行分隔的. * 指定分隔符方法join("#");其中#可以是任意 * 3:stringObject.split(a,b)这是它的语法 * 方法:用于把一个字符串分割成字符串数组. * a是必须的决定个

JS中对小数取整的函数

1.丢弃小数部分,保留整数部分 js:parseInt(7/2) 2.向上取整,有小数就整数部分加1 js: Math.ceil(7/2) 3,四舍五入. js: Math.round(7/2) 4,向下取整 js: Math.floor(7/2) MATH 对象的方法 FF: Firefox, N: Netscape, IE: Internet Explorer 方法 描述 FF N IE abs(x) 返回数的绝对值 1 2 3 acos(x) 返回数的反余弦值 1 2 3 asin(x)

Js中的一个日期处理格式化函数

1 //日期时间原型增加格式化方法 2 3 Date.prototype.Format = function (formatStr) { 4 var str = formatStr; 5 var Week = ['日', '一', '二', '三', '四', '五', '六']; 6 7 str = str.replace(/yyyy|YYYY/, this.getFullYear()); 8 str = str.replace(/yy|YY/, (this.getYear() % 100)

js中查找相同的几种函数

function findInArr(arr,num){ for(var i=0;i<arr.length;i++){ if(arr[i]==num){ return true; } } return false; }

JS中函数的地方方式

JS中函数是特殊的对象,可以拥有自己的属性和方法,属性被定义为局部变量,这样可以有效地防止变量的污染,方法被定义为闭包(定义在函数内部的函数).JS中函数的实参和形参个数都可以不固定,通过arguments(实参对象)函数属性来调用,在函数内部arguments.length表示函数实参的个数,而arguments.callee.length表示函数的形参的个数.prototype称为原型属性, 1.通过函数直接量表达式定义(适合于只要使用一次的场景,在JS中使用最多的是回调函数): funct

angular.js和vue.js中实现函数去抖(debounce)

问题描述 搜索输入框中,只当用户停止输入后,才进行后续的操作,比如发起Http请求等. 学过电子电路的同学应该知道按键防抖.原理是一样的:就是说当调用动作n毫秒后,才会执行该动作,若在这n毫秒内又调用此动作则将重新计算执行时间.本文将分别探讨在angular.js和vue.js中如何实现对用户输入的防抖. angular.js中解决方案 把去抖函数写成一个service,方便多处调用: .factory('debounce', ['$timeout','$q', function($timeou

【JS笔记系列】浅谈JavaScript函数

JavaScript作为一种基于对象(非严格面向对象)的语言,函数在JS中的地位非同一般:用函数声明类和对象.甚至函数本身也是对象. 一.函数的三种声明方式辨析. 1.function命令 function printAbc(){ console.log('ABC'); } 2.函数表达式(变量赋值形式) var printAbc = function (){ console.log('ABC'); }; 注意:1.使用函数表达式形式时务必要有分号. 2.此时function后函数名可有可无,且