`
jusescn
  • 浏览: 122122 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript中的this与call/apply的应用

    博客分类:
  • ajax
阅读更多

call/apply方法作用是将 某对象的某个方法置于某种环境下执行。

 

如下面的例子,在window.onload事件下执行 checkme.init方法,设定方法执行环境为checkme(checkme.init.apply(checkme);) ,在init方法中,给link添加onclick事件时,首先需要 var _self = this;
,然后将checkMe.sayGoodbye方法置于link.onclick上,同时需要设定checkMe.sayGoodbye的执行环境

(_self)。

 

执行结果,点击link时,先提示,而不是跳转。

 

说明:在 对象的事件方法时候,需要先设定事件方法的执行环境(其实就是执行下call/apply方法,返回匿名函数)。

 

 

<script type="text/javascript">
<!--
function checkMe(){
	this.msg = "这是测试";
};
checkMe.prototype={
	sayGoodbye:function(msg) {
	        return confirm(this.msg + msg);
	},
	init:function(){
		var link = document.getElementById('ha');
		var _self = this;
		link.onclick = function(){
			_self.sayGoodbye.call(_self,'abc');
		}
	}
};
var checkme = new checkMe();
	window.onload = function(){
	checkme.init.apply(checkme);
}
//-->
</script>
<a href="javascript:void(0)" id=ha> aaaaa</a>

 

分享到:
评论

相关推荐

    JavaScript中的this/call/apply/bind

    文章目录一、this1.什么是this2.this 代表什么3.绑定 this 的方法4.this的指向5.改变指向二、Function.prototype.bind()三、call/apply1.定义2.语法3....一、this 1.什么是this ...但在 JavaScript 中 this

    JavaScript中的this/call/apply/bind的使用及区别

    主要介绍了JavaScript中的this/call/apply/bind的使用及区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

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

    JavaScript中的this,call,apply使用及区别详解

    在之前的JavaScript学习中,this,call,apply总是让我感到迷惑,但是他们的运用又非常的广泛。遂专门花了一天,来弄懂JavaScript的this,call,apply。 中途参考的书籍也很多,以《JavaScript设计模式与开发实践》为主...

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

    JavaScript函数之call、apply以及bind方法案例详解  总结 1、相同点 2、区别 call() 方法 /* 正常模式 */ let obj = { sum(a, b) { console.log(this) return a + b } } // 执行 sum 函数的 apply、bind...

    javascript中apply和call方法的作用及区别说明

    1、call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例(就是每个方法)都有call,apply属性。既然作为方法的属性,那它们的使用...

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

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

    Javascript 中的 call 和 apply使用介绍

    call(obj,arg1,arg2,arg3);call第一个参数传对象,可以是null。参数以逗号分开进行传值,参数可以是任何类型。 apply(obj,[arg1,arg2,arg3]);apply第一个参数传对象,参数可以是数组或者arguments 对象。 这两个...

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

    在Javascript中,Function是一种对象。Function对象中的this指向决定于函数被调用的方式,使用apply,call 与 bind 均可以改变函数对象中this的指向。

    Vuact#Blog#JavaScript深入 模拟实现call、apply1

    (1)call 的第一个参数改变了this 的指向 (2)call 将后面的参数依次赋给了bar函数的形参 (3)执行bar函数 (1)改变this指向:我们将

    深入理解JavaScript中的call、apply、bind方法的区别

    在JavaScript 中,this的指向是动态变化的,很可能在写程序的过程中,无意中破坏掉this的指向,所以我们需要一种可以把this的含义固定的技术,于是就有了call,apply 和bind这三个方法,来改变函数体内部 this 的...

    JavaScript中call和apply方法的区别实例分析

    本文实例分析了JavaScript中call和apply方法的区别。分享给大家供大家参考,具体如下: 这两个方法不经常用,但是在某些特殊场合中是非常有用的,下面主要说下它们的区别: 1、首先,JavaScript是一门面向对象的语言...

    简单对比分析JavaScript中的apply,call与this的使用

    apply:调用函数,并用指定对象替换函数的 this 值,同时用指定数组替换函数的参数。 语法:apply([thisObj[,argArray]]) thisObj 可选。要用作 this 对象的对象。 argArray 可选。要传递到函数的一组参数。 2.call...

    javascript中call,apply,bind函数用法示例

    本文实例讲述了javascript中call,apply,bind函数用法。分享给大家供大家参考,具体如下: 一.call函数 a.call(b); 简单的理解:把a对象的方法应用到b对象上(a里如果有this,会指向b) call()的用法:用在函数上面 ...

    浅谈javascript中的call、apply、bind

    在JavaScript中,call、apply和bind 是Function对象自带的三个方法,这三个方法的主要作用是改变函数中的this指向,从而可以达到`接花移木`的效果。本文将对这三个方法进行详细的讲解,并列出几个经典应用场景。  ...

    Javascript中call和apply函数的比较和使用实例

    一些简单的Javascript操作中较少会用到call和apply函数,在另外一些较大型的操作中,如web应用开发,js框架开发中可能会经常遇到这两个函数。关于这两个函数的解释,网上的资料也很多,但是本人认为很多资料要么...

    JavaScript中的this关键字使用详解

    如果该函数被 Function.call 或者 Function.apply 调用,那么 this 指向 call/apply 的第一个参数,如果参数是 null 或者 undefined,this 则指向全局对象(在浏览器中的话,全局对象就是 window 对象)。...

Global site tag (gtag.js) - Google Analytics