`

js中的this关键字及call、apply、bind异同

 
阅读更多

this是javascript中的一个关键

this的使用分为两种情况

①在构造函数中,当使用new得到一个新的对象时,this代表新建的对象

②当this所在函数运行时,this代表调用者。其中像test()这样直接运行的函数它的调用者就是windows,还有call、apply、bind等一些特殊例子

 

call、apply、bind异同

三者都是用于改变上下文环境的,即this对象的指向

网上有些文章说他们改变了作用域链,自己写了简单代码测试不是的,只是改变执行上下文中的this

call、apply作用一样,区别在于接受参数方式。call是将参数按顺序传递进去,apply则是将参数放在数组中传递,而bind则是返回一个上下文确定的新对象。

 

<script type="text/javascript">
		function x(A,B){
			alert(A+B+this.C);
		}
		var C = 4;
		x(1,1);//6
		
		var D = {C:5};
		var y = x.bind(D);
		y(1,1);//7
		
		var E = {C:6};
		x.call(E,1,1);//8
		x.apply(E,[1,1]);//8
</script>

 

 

 

callback回调函数

在js中回调函数的定义为:函数A作为参数传递到另一个函数B中,并且这个函数B执行函数A。我们就A为回调函数。如果它没有名称就叫匿名回调函数

<script type="text/javascript">
		function n(A,B,callback){
			var C = A+B;
			callback(C);
		}
		function x(A){
			alert(A);
		}
		n(1,2,x);//3
		n(1,2,function(A){alert(A+1);});//4
</script>

 

 

分享到:
评论

相关推荐

    JavaScript中this关键字使用方法详解

    在JavaScript编程语言中,`this`关键字是一个至关重要的概念,它常常引发初学者的困惑,因为它的值在不同的上下文中可能会有所不同。`this`关键字主要用来引用对象的上下文,或者说是当前执行环境中的对象。在本文中...

    深入理解JavaScript中的this关键字

    JavaScript中的`this`关键字是编程过程中经常会遇到的一个关键概念,尤其在面向对象编程中起着至关重要的作用。`this`的值取决于它被调用时的上下文,而不是定义时的位置,这使得它有时会显得有些复杂。在这个深入...

    07-call、apply、bind三者的异同.html

    07-call、apply、bind三者的异同

    浅谈javascript中的call、apply、bind_.docx

    JavaScript 中的 call、apply、bind 方法是 Function 对象自带的三个方法,这三个方法的主要作用是转变函数中的 this 指向,从而可以达到“接花移木”的效果。下面将对这三个方法进行具体的讲解,并列出几个经典应用...

    详解JavaScript中this关键字的用法_.docx

    在JavaScript中,`this`关键字是一个非常重要的概念,它指的是当前执行上下文中的对象。`this`的值取决于函数的调用方式,而不是定义方式。下面我们将详细探讨在不同场景下`this`的用法。 1. **全局作用域中调用...

    JS中的call、apply、bind方法详解.pdf

    JS中的call、apply、bind方法详解 随着JavaScript的发展,函数调用对象的改变变得越来越重要。在JavaScript中,call、apply、bind三个方法都是函数对象的方法,它们的作用都是改变函数的调用对象。下面,我们将详细...

    原生JS实现 call apply bind

    都是用来改变this的指向,在平时工作过程中,除了实现对象的继承,在写一些基础类,或者公用库方法的时候会用到它们,其他时候 call 和 apply 的应用场景并不多。 在React中bind常用来绑定事件,改变this的指向 call...

    开启Javascript中apply、call、bind的用法之旅模式

    在JavaScript中,函数是对象,而函数对象中的this关键字的指向是根据函数调用的方式来决定的。由于JavaScript允许函数在不同的上下文中执行,从而导致this指向发生变化,这就带来了灵活性同时也可能引起混淆。为了...

    javascript中apply、call和bind的用法区分_.docx

    在JavaScript编程中,`apply`、`call`和`bind`这三个方法被广泛用于改变函数内部`this`的指向,这对于理解和编写复杂的JavaScript代码至关重要。虽然它们的功能相似,但在具体用法上存在一定的差异。 #### 相同之处...

    关于JS中的apply,call,bind的深入解析.docx

    JavaScript 中的 `apply`、`call` 和 `bind` 都是用来操控函数调用时 `this` 指向的三个关键方法。它们允许开发者在不同的上下文中执行函数,这对于面向对象编程和函数式编程非常重要。下面我们将深入解析这三个方法...

    如何使用Javascript中的this关键字

    在JavaScript中,`this`关键字是一个非常重要的概念,它用于引用函数执行时的上下文对象。`this`的值取决于函数被调用的方式,而不是函数定义的位置。在不同的场景下,`this`的指向会发生变化,这使得它成为...

    精通JavaScript的this关键字_.docx

    4. **`call`/`apply`/`bind`方法**:这些方法可以显式地设置`this`的值,允许开发者控制`this`指向哪个对象。 考虑以下示例,展示了`call`方法如何改变`this`的指向: ```javascript var anotherPerson = { ...

    Javascript中call,apply,bind方法的详解与总结

    本文针对JavaScript中三个重要的函数方法——call、apply和bind,进行详尽的分析,并在文章的结尾部分对这三个方法之间的联系和区别进行了概括,以便于读者更深入地理解它们的用途和应用场景。 首先,我们来探讨...

    关于js里的this关键字的理解

    在JavaScript编程中,`this`关键字是一个非常重要的概念,它代表着函数的上下文,即函数执行时的主体。由于JavaScript的函数是一等公民,可以作为变量传递、作为对象的属性,也可以被其它函数作为参数传递,因此`...

    浅谈JavaScript中的apply/call/bind和this的使用

    apply/call/bind三者的联系就在于,都可以用来改变函数中 this 指向的值,且第一个参数为要指向的 this 的值,apply的第二个参数(或 bind 与 call 的不定参数)为要传入的参数。这就不得不提及 javascript 中函数的...

    js代码-JavaScript的call/apply/bind函数实现

    在JavaScript中,`call()`, `apply()`, 和 `bind()` 是三个非常重要的函数,它们都与函数调用有关,但各自有不同的应用场景。本文将深入探讨这三个函数的实现原理及其使用方式。 首先,`call()` 函数允许我们调用一...

    深入解析JavaScript编程中的this关键字使用

    `this`的值可以通过`call`、`apply`或`bind`方法显式地设置,这些方法允许我们指定`this`的值并立即执行函数或创建新的函数引用。 总之,`this`是JavaScript中一个灵活且重要的概念,理解它的行为是编写高效、可...

    【JavaScript源代码】JavaScript函数之call、apply以及bind方法案例详解.docx

    JavaScript中的call、apply和bind方法都是用来改变函数调用时的上下文(即this值)以及传递参数。它们之间的相同点在于,都能够指定函数执行时的this对象,并且都能接收参数。不同点在于它们的调用方式和执行时机。 ...

    javascript技术难点(三)之this、new、apply和call详解

    JavaScript中的this、new、apply和call是理解JavaScript面向对象编程的关键知识点。首先,我们要知道,this关键字在JavaScript中表示当前上下文的对象,但它并不像Java中的this那样始终指向同一个对象。JavaScript的...

Global site tag (gtag.js) - Google Analytics