草庐IT

function-call-operator

全部标签

javascript - 请解释 .call(false) 的奇怪行为

>(function(){returnthis;}).call(false)false>!!(function(){returnthis;}).call(false)true在Firefox4beta和最新的Chrome中。就像...什么时候是boolean值,不是boolean值? 最佳答案 似乎当原始boolean值作为第一个参数传递给call或apply时,它会自动装箱到Boolean目的。这在Firefox4的Firebug中很明显:>>>(function(){returnthis;}).call(false)Boolea

javascript - 谷歌电子表格脚本 : "Cannot find function getRange in object Sheet" when creating a simple function

抱歉,这个愚蠢的问题,但我搜索了整个互联网,但找不到学习如何在GoogleSpreadSheetScript中编程的好教程。我想做一个非常简单的函数,只是为了练习。functionsimplesum(input){varss=SpreadsheetApp.getActiveSpreadsheet();varsheet=ss.getSheets();varrange=sheet.getRange(input);varx=0;for(vari=1;i我知道我可以使用=sum()来做完全相同的事情。这里的想法是学习如何编程。当我尝试在单元格中使用我的函数时:(即:=simplesum((A1

javascript - Spread Operator 不适用于基于 Redux/ES6 的示例

我正在尝试理解DanAbramov发布的Redux在线教程。目前我在下面的示例中:ReducercompositionwithArrays下面是我按照上述示例的练习代码://IndividualTODOReducerconsttodoReducer=(state,action)=>{switch(action.type){case'ADD_TODO':return{id:action.id,text:action.text,completed:false};case'TOGGLE_TODO':if(state.id!=action.id)returnstate;//Thisnotwor

javascript - sort(), sort(function(a,b){return a-b;}); 之间的区别和排序(函数(a,b){...})

我想了解sort()的工作原理以及我应该如何使用它。我做了一些研究(谷歌)并在stackoverflow上解决了类似的问题,但仍有一些事情对我来说不是100%清楚。到目前为止,我的理解如下:有:不带参数的sort():仅对String值的简单数组进行字母和升序排序例如//sortalphabeticallyandascending:varmyArr=["Bob","Bully","Amy"]myArr.sort()//Arraynowbecomes["Amy","Bob","Bully"]sort()withafunctionasaparameter:根据属性对数组中的对象进行排序;然

javascript - 为什么 (function() { return this; }).call ('string literal' ) 返回 [String : 'string literal' ] instead of 'string literal' ?

这是我在试验JS时的最新发现:(function(){returnthis;}).call('stringliteral');//=>[String:'stringliteral']inV8//=>String{"stringliteral"}inFF我在执行以下操作时偶然发现了这一点:(function(){returnthis==='stringliteral';}).call('stringliteral');//=>false谁能告诉我为什么函数内部的this不是作为第一个参数传递给call的正是?编辑1Whatisthedifferencebetweenstringprimi

javascript - 需要模式 : create new object that returns an executeable function and inherits from a prototype

场景1-一切正常:varAwesomeObject=function(){varself=this;self.whatstuff='reallyawesome';}AwesomeObject.prototype.doStuff=function(){varself=this;console.log('idid'+self.whatstuff+'stuff');returnself;}varawesome=newAwesomeObject();//returnsanewAwesomeObjectawesome.doStuff();//prints'ididreallyawesomestu

javascript - Microsoft JScript 运行时错误 : Function expected

我有以下javascript函数,其中包含一些jquery。当我调用createAppointmentConfirm函数时,它尝试调用SendMail(id)函数但抛出错误:"MicrosoftJScriptruntimeerror:Functionexpected"Firefox调试器抛出一个错误:SendMailisnotafunction[BreakOnThisError]SendMail(data.Message);这是代码。感谢您的帮助。functioncreateAppointmentConfirm(data){if(data.Error){alert(data.Messa

javascript - Push is not a function JavaScript 错误

在下面的代码中,出现“推送不是函数”错误。任何人都可以让我知道我在这里做错了什么吗?我正在尝试用Javascript创建二维数组。varmyArray=newArray(4);myArray=["0","0","0","0"];for(vari=0;iFirebug指向我:myArray[i].push("ID");对于这一行,我收到“TypeError:myArray[i].pushisnotafunction”最终的数组应该是这样的:[ID,"SomeValue1"],[ID,"SomeValue2"],[ID,"SomeValue3"]而且我不能硬编码,我需要根据数据库中的数据动

javascript - [].forEach.call(...?

我非常喜欢像这样在nodeLists上使用forEach方法:varnodes=document.querySelectorAll(".foo");[].forEach.call(nodes,function(item){//dostuffwithitem});不过我想知道,这样做是否比常规方式需要更长的时间?例如for(vari=0;i 最佳答案 这是一个niceperformancecomparison.根据它,Array.forEach比本地for循环慢。 关于javascript

Javascript 使用 `apply()` 传递参数数组,但保留 `this` 对 `call()` 的引用

我需要结合JavaScript的call()和apply()方法的强大功能。我遇到的问题是call()保留了对this的正确引用,但是当我需要它作为函数参数发送时,将我拥有的参数数组作为数组发送.apply()方法在使用数组时将参数发送到函数就好了,但我不知道如何向它发送对this的正确引用,call()方法好像天生就可以访问。下面是我所拥有的代码的简化版本,它可能看起来毫无用处,但它是表达要点的好方法://ANOBJECTTHATHOLDSSOMEFUNCTIONSvarmain={};main.the_number=15;main.some_function=function(ar