背景: 小明想要用数组的形式为 Cls.func 传入多个参数,他想到了以下的写法: var a = new Cls.func.apply(null, [1, 2, 3]); 然而浏览器却报错Cls.func.apply is not a constructor. 乍一看是 new 操作符去修饰 Cls.func.apply 了,于是他又这么写: var a = (new Cls.func).apply(null, [1, 2, 3]); 浏览器依旧报错...好吧,还是好好查一查相关的解决方法吧…
apply,call,bine 这三兄弟经常让初学者感到疑惑.前两天准备面试时特地做了个比较,其实理解起来也不会太难. apply MDN上的定义: The apply() method calls a function with a given this value and arguments provided as an array (or an array-like object). apply() 方法调用一个函数,指定该函数的 this 值并将一个数组(或类数组对象)作为该函数的参数.…
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script type="text/javascript"> var test = { a : 5, b : 6, sum : function…