首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Js apply() call()使用详解

Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记...) call:和apply的意思一样,只不过是参数列表不一样....示例 在Studen函数里面可以将apply中修改成如下: Person.call(this,name,age); 这样就ok了 3.什么情况下用apply,什么情况下用call 在给对象参数的情况下,...(Person.call(this,age,name,grade)); 4.apply的一些其他巧妙用法 细心的人可能已经察觉到,在我调用apply方法的时候,第一个参数是对象(this), 第二个参数是一个数组集合...) 这块在调用的时候第一个参数给了一个null,这个是因为没有对象去调用这个方法,我只需要用这个方法帮我运算,得到返回的结果就行,.所以直接传递了一个null过去 b)Math.min 可以实现得到数组中最小的一项

1.4K60

js中的call和apply

一、call和apply简介 call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。 两个方法都使用了对象本身作为第一个参数。...两者的区别在于第二个参数: apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call参数传入(从第二个参数开始)。...在 JavaScript 严格模式(strict mode)下, 在调用函数时第一个参数会成为 this 的值, 即使该参数不是一个对象。...在 JavaScript 非严格模式(non-strict mode)下, 如果第一个参数的值是 null 或 undefined, 它将使用全局对象替代。...二、call和apply的相同点和不同点 1. 区别 call传递的参数是序列1,2,3,4 apply传递的参数是集合型[1,2,3,4] 2.

1.5K30

jscall与apply用法

前天去面试,有个gg问了一些js知识,其中有一道call与apply用法的题目,尽管在365天前用过call方法,但当时还是没能答上来,今天深入总结一下 call和apply,它们的作用都是将函数绑定到另外一个对象上去运行...方法,this默认指向第一个参数window对象,因此this.value也为global var 3、函数gFunc调用call方法,this默认指向第一个参数new mFunc(),即mFunc的对象...,因此this.value为mFunc的成员变量member var 4、函数gFunc调用call方法,this默认指向第一个参数input text控件,即id=‘idTxt’的控件,因此this.value...为input控件的value值input text 5、函数func2调用call方法,this默认指向第一个参数func函数对象,因此this.value为this.a,即func 6、函数func2...调用call方法,第二个参数属于函数对象func2的参数,因此alert(x)为第二个参数func2 二、call 继承用法与改进 js使用call模拟继承 测试代码: <!

2.7K10

jscall、apply、bind那些事

前言 回想起之前的一些面试,几乎每次都会问到一个js中关于call、apply、bind的问题,比如… 怎么利用call、apply来求一个数组中最大或者最小值 如何利用call、apply来做继承 apply...call、apply的区别 他们俩之间的差别在于参数的区别,call和aplly的第一个参数都是要改变上下文的对象,而call从第二个参数开始以参数列表的形式展现,apply则是把除了改变上下文对象的参数放在一个数组里面作为它的第二个参数...call、apply、bind的常见应用场景。...,-67,5,7,6,-8,687); 将伪数组转化为数组 js中的伪数组(例如通过document.getElementsByTagName获取的元素)具有length属性,并且可以通过0、1、2…下标来访问其中的元素...length属性 ) 数组追加 在js中要往数组中添加元素,可以直接用push方法, var arr1 = [1,2,3]; var arr2 = [4,5,6]; [].push.apply

1.6K60

jscall、apply、bind那些事

前言 回想起之前的一些面试,几乎每次都会问到一个js中关于call、apply、bind的问题,比如… 怎么利用call、apply来求一个数组中最大或者最小值 如何利用call、apply来做继承 apply...所以其实他们干的事从本质上讲都是一样的动态的改变this上下文,但是多少还是有一些差别的.. call、apply与bind的差别 call和apply改变了函数的this上下文后便执行该函数,而bind...call、apply的区别 他们俩之间的差别在于参数的区别,call和aplly的第一个参数都是要改变上下文的对象,而call从第二个参数开始以参数列表的形式展现,apply则是把除了改变上下文对象的参数放在一个数组里面作为它的第二个参数...,-8,687); 将伪数组转化为数组 js中的伪数组(例如通过document.getElementsByTagName获取的元素)具有length属性,并且可以通过0、1、2…下标来访问其中的元素...length属性 ) 数组追加 在js中要往数组中添加元素,可以直接用push方法, 1234567 var arr1 = [1,2,3];var arr2 = [4,5,6];[].push.apply

1.7K50

划重点:js中的this、call、apply

方法传入的参数中,第一个参数也是指定调用call的函数体内this对象的指向,从第二个参数开始往后,每个参数被依次传入函数中。...当使用apply或call时,如果传入的第一个参数是null,则函数体内的this会指向默认的宿主对象,在浏览器中就是window,但在严格模式下,函数体内的this还是为null: 1var func...= function(){ 2 //非严格模式下,函数调用apply或call时,第一个参数设为null时,函数体内的this指向全局对象 3 console.log(this =...或Function.prototype.apply情况下,前面调用apply或call的函数体内的this原有指向被更改为指向apply或call方法中的第一个参数。.... 7 ) 如果只是想通过apply或call来借用某个函数方法进行某种运算,则只需将apply或call第一个参数设为null来代替某个具体对象。

95420

游戏安全丨喊话CALL分析-分析参数

文章主要内容是有参CALL如何分析参数,在写汇编时如何把参数写进去以及如何调用。以喊话CALL为例,喊话CALL是用代码来调用,打印任意的话。...,可以看到有三个参数rdx、r8d(r8的32位)、rcx(在64位类似fastcall,它的前四个参数分别是rcx、rdx、r8、r9)喊话CALL是会带一个发送的文本,有文本参数,所以先找一下参数。...9.1 点击call的地方下断点,在游戏内-当前-发送文本9.2来看一下参数,发现其他rax、rsi、r10、r11里有文本,但在r8、r9、rcx、rdx里没有因此判断不是我们要找的CALL,是底层或上一层...call,取消断点9.3文本参数应该前四个参数里9.4 Ctrl+G返回到这里,确定9.5下个断点,走动一下(防止是其他call),再说一句话,回车9.6断下来,发现r8符合要求9.7把参数记下来,然后断点运行...值来源于上面的callcall的返回值是rax13.4 Rcx=那个call的返回值13.4.1进一层,Rax就是call的返回值+48,然后取值13.4.2再进去一层,发现一个基址放在rax里​13.4.3

55120

JScall apply bind的用法

2.1.bind方法作用 修改函数或者方法中的this为指定的对象, 并且会返回一个修改之后的新函数给我们 注意点: bind方法除了可以修改this以外, 还可以传递参数..., 只不过参数必须写在this对象的后面 */ //call apply bind修改this的 /*call:修改函数或者方法中的this为指定的对象..., 并且会立即调用修改之后的函数 注意点: call方法除了可以修改this以外, 还可以传递参数, */ /*apply:修改函数或者方法中的this...为指定的对象, 并且会立即调用修改之后的函数 注意点: apply方法除了可以修改this以外, 还可以传递参数, 只不过参数必须通过数组的方式传递 立即执行是不返回的....test(10,20); window.test(); let fn=test.bind(obj,10,20); fn(); test.call

2.9K30
领券