Discuss / JavaScript / 最后代码没看懂

最后代码没看懂

Topic source

各位前辈,应该怎么理解 oldParseInt.apply(null, arguments);这段代码

apply方法,它接收两个参数,第一个参数就是需要绑定的this变量,第二个参数是Array,表示函数本身的参数。 这里面的apply是绑定到哪里了?

说了别抢

#2 Created at ... [Delete] [Delete and Lock User]

apply 绑定的就是this=变量名称,例如:上述this就是xiaoming

Black_Floyd

#3 Created at ... [Delete] [Delete and Lock User]

null就是window吧?这里不调用apply应该也行吧

''' 'use strict';

var count = 0; var oldParseInt = parseInt; // 保存原函数

window.parseInt = function () { count += 1; return oldParseInt; // 调用原函数 }; '''

返回改成 return oldParseInt;

我发现这个例子直接这样写运行起来也没问题,不用apply()

不知道是我的方法不对,还是这个例子不足以说明必须要用装饰器?

就是调用了parseInt原本的函数。
我的理解,null就是不控制this指向,arguments就是指向原函数的所有参数。
装饰器等于保留了parseInt的用法,同时增加了一个计数器。
但是删掉apply好像也不影响,只能翻篇等以后研究了。

繁解ffffj

#6 Created at ... [Delete] [Delete and Lock User]

好像直接删除apply是不能运行的,需要在function中加入形参,并传到oldParseInt中去。

apply 绑定是为了 fn 更好地传入参数


  • 1

Reply