jjzjj

Arguments

全部标签

javascript - 如何在 JavaScript 中找到调用函数?

我在JS中有一个函数被从多个地方调用..现在我正在iPad上测试这个页面,因此发现调试有点困难。我可以通过某种方式(在控制台上打印)找出我的函数是从哪里调用的吗? 最佳答案 像这样?functiontestOne(){console.log("Test1");logTest();}functiontestTwo(){console.log("Test2");logTest();}functionlogTest(){console.log("Beingcalledfrom"+arguments.callee.caller.toStri

JavaScript curry

我是JavaScript的新手,试图理解OreillyJavaScriptCookbook中有关柯里化(Currying)的教程。谁能用通俗易懂的语言逐步详细解释这个程序。请务必解释在程序的倒数第二行中传递的“null”参数。如果您能提供帮助,请提前致谢。functioncurry(fn,scope){scope=scope||window;varargs=[];for(vari=2,len=arguments.length;i 最佳答案 如果您不介意某个建议,请从Javascript:好的部分开始。随后阅读JavascriptPa

javascript - es6 中用于确定调用函数的 arguments.callee 替代方案

这个问题在这里已经有了答案:HowdoyoufindoutthecallerfunctioninJavaScriptwhenusestrictisenabled?(5个答案)关闭2年前。在框架中,我正在开发,我已经构建了允许定义私有(private)和protected属性和方法的机制。我在ES5规范中发现唯一的能力是使用arguments.callee像这样:descriptor.method=function(){if(__callerIsProptected(arguments.callee.caller.caller,cls))returnvalue.apply(this,__

javascript - 未捕获的 TypeError : Failed to execute 'insertRule' on 'CSSStyleSheet' : 2 arguments required, 但只有 1 个存在

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。关于您编写​​的代码问题的问题必须在问题本身中描述具体问题—并且包括有效代码以重现它。参见SSCCE.org寻求指导。关闭9年前。Improvethisquestion最新版本的GoogleChrome和Opera会抛出此错误:UncaughtTypeError:Failedtoexecute'insertRule'on'CSSStyleSheet':2argumentsrequired,butonly1present.知道这个新错误的来源以及如何修复吗?

javascript - 这是合法的javascript吗?将参数传递给函数并让它改变它们

这合法吗?它适用于所有浏览器吗?functionfunc1(a,b,c){//b==2herechange_em(arguments);//bshouldequal3here}functionchange_em(args){args[0]=6;args[1]++;args[2]=[];}func1('foo',2);如果您想知道,我需要调整函数中的参数。宏将是完美的,除了javascript没有宏。正确地执行此操作,即将变量传递给函数,然后将它们返回到对象中,然后在调用方中提取它们几乎与复制/粘贴调整函数一样多的代码。 最佳答案 在

JavaScript:为什么更改参数变量会更改 `arguments` "array"?

考虑:>functionhello(what){.what="world";.return"Hello,"+arguments[0]+"!";.}>hello("shazow")"Hello,world!"为什么改变what的值会改变arguments[0]的值? 最佳答案 "Whydoeschangingthevalueofwhatchangethevalueofarguments[0]?"因为它就是这样设计的。形式参数直接映射到参数对象的索引。那是除非您处于严格模式,并且您的环境支持它。然后更新一个不会影响另一个。functio

javascript - 使用 RequireJS 从数组中动态加载模块

我正在开发一个使用RequireJSAMD加载方法的应用程序。我将我的模块动态地从一个配置文件中提取到一个数组中varamd_modules=["module1","module2","module3"]现在我有了我的requireJS代码require(amd_modules,function(result){console.log("Allmodulesloaded");}现在,结果变量显示第一个模块是“module1”。如何将其他模块也放入function()括号内的变量中。例如,require(amd_modules,function(module1,module2,modul

Javascript 的 Bind 实现?

因为bind不是跨浏览器(旧的)函数,所以有一个polyfill:(来自JohnResig的书)/*1*/Function.prototype.bind=function()/*2*/{/*3*/varfn=this,/*4*/args=Array.prototype.slice.call(arguments),/*5*/object=args.shift();/*6*/returnfunction()/*7*/{/*8*/returnfn.apply(object,/*9*/args.concat(Array.prototype.slice.call(arguments)));/*1

javascript - 如果我调用一个参数比定义接受的参数多的函数,会发生什么情况?

我想知道常规的全系列JS开发人员定义的函数,以及预定义的DOM方法:如果我尝试调用IE的attachEvent会发生什么WHATWG的addEventListener的签名?例如:elem.attachEvent('onbillgates\'mom',function(e){this.mount();},false);特别注意第三个参数false。即使attachEvent方法的签名只需要两个参数,这会不会出错?这个例子呢?functionfoo(FirstOf2,SecondOf2){console.log(FirstOf2+SecondOf2);}foo(1,2,true);

Javascript递归数组展平

我正在练习并尝试编写一个递归数组展平函数。代码在这里:functionflatten(){varflat=[];for(vari=0;i问题是,如果我向那里传递一个数组或嵌套数组,我会收到“超出最大调用堆栈大小”错误。我做错了什么? 最佳答案 问题是你如何传递数组的处理,如果值是一个数组那么你一直调用它导致无限循环functionflatten(){varflat=[];for(vari=0;i演示:Fiddle这是一个更现代的版本:functionflatten(items){constflat=[];items.forEach(