1:关于javascript的apply和call函数
官方解释:应用某一对象的一个方法,用另一个对象替换当前对象。
apply与call的区别是第二个参数不同。apply是 数组或者arguments 对象。而call是逗号隔开的任何类型。
apply,call方法最让人混淆的地方也是apply,call的特色。但最好不要滥用。
能改变调用函数的对象。如下例,函数中用到this关键字,这时候this代表的是apply,call函数的第一个参数。
关于call,最简单的解释就是:把隐藏的第一个参数显示化。因为通常一个方法x的调用,会有一个额外的隐藏参数,就是x所属的对象,如果没有所属,则为global(如window)对象,并在函数内可以用this关键字访问之。 <script src="prototype1.3.1.js"></script>
<input type="text" id="myText" value="input text">
<script>
function Obj(){
this.value="对象!";
}
var value="global 变量";
function Fun1(){
alert(this.value);
}
window.Fun1();
Fun1.apply(window);
Fun1.apply($('myText'));
Fun1.apply(new Obj());
</script>
分享到:
相关推荐
总的来说,JavaScript中的匿名函数和闭包是强大的工具,它们可以帮助我们创建私有变量、实现模块化和数据封装,以及在异步编程中起到重要作用。理解并熟练运用这些概念对于任何JavaScript开发者来说都是至关重要的。
JavaScript 高级笔记 - 函数的定义和调用、this 指向和改变、严格模式 JavaScript 中的函数定义和调用是编程语言的基础。函数可以定义多种方式,包括函数声明、函数表达式和 new Function()。函数的调用方式也多种...
为了进一步控制函数执行的上下文,JavaScript提供了特殊的内置方法,即call和apply方法,这两个方法都是Function对象的方法,可以用来在特定的作用域中调用函数,即改变函数体内this的指向。 call和apply方法的主要...
### JavaScript中call与apply方法的学习笔记 在JavaScript编程中,`call`和`apply`是两个非常重要的方法,它们都是`Function`原型上的方法,用于改变函数的`this`上下文(即函数体内`this`的指向)到指定的对象,并...
JavaScript中的匿名函数和闭包是两个非常重要的概念,它们在函数式编程和模块化开发中起着关键作用。 首先,让我们来理解匿名函数。匿名函数,顾名思义,是没有名称的函数。在JavaScript中,我们可以直接定义一个不...
这篇学习笔记主要涉及了JavaScript的基础概念和一些高级特性,包括预编译、作用域、函数、对象原型、原型链、函数调用方式(如call、apply)、继承模式、对象克隆、数组操作、自定义类型判断以及错误处理机制。...
我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享.. 如有什么不对的或者说法不...
1.知识点包括:基础语法,字符串操作,object对象,DOM对象,BOM对象,offset,client,scroll对象,事件,事件流处理,函数(call,apply,bind函数),作用域,闭包(十种闭包的应用场景),面向对象,正则表达式,...
根据提供的文件信息,可以看出这份“我的javascript学习笔记”主要涵盖了JavaScript中的几个关键概念和技术要点,包括正则表达式、AJAX以及一些JavaScript的核心语言特性。接下来将这些知识点进行详细的整理和解释。...
JavaScript中的函数记忆是一种优化技术,它通过存储函数的先前计算结果来提高性能。函数记忆的主要思想是,如果一个函数被多次调用,并且每次调用的参数相同,那么第二次及之后的调用可以直接从缓存中获取结果,而...
通过构造函数创建对象,通过原型链实现继承,使用call()、apply()或bind()方法改变函数的上下文,以及利用new关键字创建实例,都是JavaScript中实现面向对象编程的关键技术。 总之,这份笔记归类详尽地梳理了...
再者,关于`var`的作用域,JavaScript有函数作用域而不是块级作用域。这意味着变量在声明它们的函数内都可见,而不是只在声明它们的代码块内。不过,ES6引入了`let`和`const`,它们提供了真正的块级作用域。不恰当...
apply()和call()常常用于改变函数的作用域,即改变函数内部this的指向,以便在特定对象的上下文中执行函数。除了改变this的指向外,还可以用来实现基于已有函数构造新函数的“继承”或者在不同对象间共享相同函数的...
4. **this绑定**:this的值取决于函数调用方式,可以是默认绑定、隐式绑定、显式绑定(call/apply/bind)或new绑定。 二、函数式编程 5. **高阶函数**:可以接收函数作为参数或者返回函数的函数,如map、reduce、...
call和apply是JavaScript中两个非常重要的函数方法。call方法用于将函数作为当前对象的方法来调用,而apply方法用于将函数作为当前对象的方法来调用,并且可以传递参数。call和apply的区别在于call方法只能传递一个...
JavaScript中的arguments对象是一个特殊对象,它代表当前正在执行的函数的参数集合。这个对象可以在函数体内直接使用,无须提前声明参数名即可访问参数。每一个JavaScript函数作用域内都有一个名为arguments的局部...
关于`call`和`apply`方法,这两个方法都是函数对象的属性,用于改变函数的执行上下文,即指定`this`的指向。`call`方法的参数形式较为灵活,允许直接传递多个参数,而`apply`方法则要求传入一个包含多个参数的数组。...
JavaScript高阶笔记总结: 目前学到的this指向: 1.普通函数的this指向 window 2.构造函数this指向实例化对象 3.事件中的this指向事件源 4.定时器中的this指向window 5.立即执行函数中的this指向window 6.对象...