草庐IT

Javascript:将命名函数分配给变量时不一致(命名函数表达式)

谁能解释一下InternetExplorer和Firefox在以下方面的行为差异:varmyNamespace=(function(){varexposed={};exposed.myFunction=functionmyFunction(){return"Works!";}console.log(myFunction());//IE:"Works!"//Firefox:ReferenceError:myFunctionisnotdefinedconsole.log(exposed.myFunction());//IE:"Works!"//FF:"Works!"returnexpose

javascript - 为什么在将 javascript 函数分配给不同的 var 后不能通过其原始名称访问它?

varf=functionfoo(){console.log("hello");};f();foo();这会产生一个错误:“Exception:ReferenceError:fooisnotdefined”但是“foo”被定义了。为什么会这样?我知道这是一个函数表达式,“f()”是用来访问这个函数的。但这不是匿名函数,我确实有这个函数的名称。为什么我无法使用其名称访问该函数? 最佳答案 MDN-函数表达式语法varmyFunction=function[name]([param1[,param2[,...,paramN]]]){st

javascript - JS - 将函数分配给变量

这个问题在这里已经有了答案:Whatisthedifferencebetweenafunctioncallandfunctionreference?(6个答案)关闭6年前。众所周知,下面这个不会运行a()函数所以不会出现警告框//1stfunctiona(){alert('A!');returnfunction(){alert('B!');};};我们知道以下代码将运行a()函数和警报框“A!”会出现//2ndfunctiona(){alert('A!');returnfunction(){alert('B!');};};a();//callingfunction但是,如果我们运行下面

JavaScript 将函数分配给对象属性

我正在学习JavaScript教程并且我能够完成它。但问题是我不明白其中一条线在做什么。我有一个函数setAge()然后在创建一个susan对象之后我将其中一个属性设置为该对象作为函数的名称?我不明白为什么这样做。如果不这样做,我就不能使用函数/方法吗?教程代码:varsetAge=function(newAge){this.age=newAge;};varsusan=newObject();susan.age=25;susan.setAge=setAge;//howthehelldoesthiswork?//here,updateSusan'sageto35usingthemetho

JavaScript:将匿名函数分配给变量时,不传递函数返回值,而是将函数作为字符串传递

我正在尝试学习JavaScript,但遇到了障碍。如果答案很明显并且可以通过简单的搜索找到,我提前道歉。我是编程和JavaScript的新手,不确定要遵循什么问题。在下面的代码中,该函数从HTML表单中获取值,进行一些处理并将它们发回。我已经测试了输入和输出过程,它工作正常。functionfoo(){varx=parseInt(document.formdata.fieldone.value);vary=parseFloat(document.formdata.fieldtwo.value);if(isNaN(y)){varz=x;}else{varz=function(x,y){i

javascript - 将 javascript 函数分配给 dom 元素

我正在使用MSHTML库通过MSHTML.HTMLDocument解析HTML。我的问题:有没有办法将JavaScript函数分配给DOM元素?我试过类似的东西:div.onmouseover="function(){alert('mouseover')}"和div.setattribute"onmouseover","function(){alert('mouseover')}"没有成功(没有错误,但也没有效果)。有什么想法吗? 最佳答案 始终使用函数,而不是在javascript中附加一串代码。您可以通过分配一个匿名函数来做到这

javascript - 为什么将函数分配给 var 与简单地定义它不同?

这个问题在这里已经有了答案:varfunctionName=function(){}vsfunctionfunctionName(){}(41个回答)关闭9年前。所以我正要向我们不断增长的全局函数列表添加一个新函数(叹息),并注意到最后一个用户在简单的functiona(){}上使用了变量赋值。functionaFunction(){returnnull;}varbFunction=function(){returnnull;}我创建了一个test看看它是否有所作为;它确实如此,但是一个相互矛盾的。(chrome喜欢简单的函数,而firefox喜欢变量赋值)。Firefox:函数创建(

javascript - 在 Javascript 中,什么时候需要将命名函数分配给变量?

在BabelJS的在线REPL(http://babeljs.io/repl/)中,当我输入:leta=(x)=>x+1它将被转译为:"usestrict";vara=functiona(x){returnx+1;};这里的vara=functiona(x)对我来说有点困惑,因为vara=function(x)或functiona(x)据我了解就足够了。有没有人知道何时以及为什么需要将命名函数分配给变量? 最佳答案 这里确实有两个不同的问题:定义或表达函数的不同方式有何区别?为什么leta=(x)=>x+1以这种方式转译?为了回答(

javascript - 将函数分配给 window.onerror 比 window.addEventListener ('error' 回调更可取)?

将函数分配给window.onerror似乎是开始处理页面代码错误的一种非常简单的方法。但是,确保您没有覆盖预先存在的错误处理程序很重要,因此通常的做法是维护对先前值的引用并将其作为新函数的一部分调用。例如:varold_onerror=window.onerror;window.onerror=function(){//dosomethingif(old_onerror){old_onerror();}};我可以在网上找到的大多数文档/博客文章/等都建议这样做。他们为什么不建议为'error'事件添加事件处理程序呢?这允许在其中一个事件被触发时调用多个函数,并且不需要笨拙地维护对其他

javascript - 如何将函数分配给 Javascript 对象的属性?

我正在寻找并努力寻找以下示例:varplayer1={name:"Chris",score:1000,rank:1};varplayer2={name:"Kristofer",score:100000,rank:2};functionplayerDetails(){alert("Thenameoftheplayeris"+this.name+"."+"Hisscoreis:"+this.score+"andhisrank:"+this.rank);}player1.logDetails=playerDetails;player2.logDetails=playerDetails;pla