这个问题在这里已经有了答案:Reasonbehindthisselfinvokinganonymousfunctionvariant(5个答案)关闭8年前。有没有什么特别的原因让我经常遇到:(function(){console.log("Hello");}).call(this);代替:(function(){console.log("Hello");})();传不传this调用应该是一样的效果吧?似乎有一些性能差异:http://jsperf.com/call-vs-parenthesis.
下面的代码返回一个带有“hello”的弹出窗口。alert.call(this,'hello');但是下面的代码返回错误“TypeError:Illegalinvocation”。console.log.call(this,'hello');alert和console.log的实现有什么区别? 最佳答案 alert是一个全局方法(window.alert)。如果你调用它alert.call(this),this就是窗口对象。因为log是console对象中的一个方法,它期望this是console对象本身,但是你还是用this(wi
我见过用.call(this)包裹的IIFE,而不仅仅是()。为什么要这样做?上下文:https://github.com/dmauro/Keypress/blob/development/keypress.js(据我了解,this将引用window对象-无论如何都会调用IIFE。这似乎是多余的。) 最佳答案 如果不使用call调用IIFE,它里面的this会引用全局对象window(或者undefined在严格模式下)。使用.call(this)将传递给它任何this在调用时引用的内容(无论当前上下文是什么)。例如,您想使用.ca
我是backbone.js和underscore.js的新手。HTML:我调用View文件的地方:JS函数(与javascript项目配合良好):functionCart(){......this.showCart=function(){varitem=deserializeJSONToObj(window.localStorage.getItem(Cart.storageName));varstr='';str+='ItemtobuyQuantity';$.each(item,function(i,item){str+=''+trimString(item.Name,50)+'Ava
我有两个数据数组:AssociatedPrincipals(以前保存的数据)和ReferencePrincipals(要填充到下拉控件中的静态数据)。我正在努力从AssociatedPrincipals获取以前的值,以便在页面加载时以动态数量(大多数示例使用单个下拉列表)的下拉列表显示/选择。我不确定如何设置表单(代码隐藏和HTML),尤其是设置Select的formControlName。目前,每个下拉列表中的静态值都会填充,但我无法让选择的值正确绑定(bind)。publicngOnInit(){this.factsForm=this.formbuilder.group({asso
我使用Moment解析从API获得的日期,我需要在完成数据收集后对数组进行排序。我目前有这个:myobject.name=name;myobject.time=Moment(ajaxinfo.startdate).format('DD/MM/YYYY');array.push(myobject);//...moredataisadded...array.sort((left,right)=>{returnMoment.utc(left.time).diff(Moment.utc(right.time));});ajaxinfo.startdate是我从API获取的字符串,它看起来像"2
我有三个页面使用相同的代码,其中一个页面不存在这个变量,另外两个页面上变量ticketType的值为1或2。我需要首先检查ticketType是否存在并且不存在tundefined其次,需要确定它是1还是2。这个if语句产生一个错误:if(typeofticketType!=undefined&&ticketType==1){}这是说ticketType未定义。我尝试嵌套if语句来检查它是否首先被定义,认为它不会去尝试内部if语句,但firebug仍然会产生错误。有什么想法吗?必须有办法做到这一点...... 最佳答案 'undef
我正在使用JqxPanel、JqxDocking和JqxChart。JqxPanel包含工作正常的停靠窗口。当我曾经将JqxChart放入窗口时,Chrome给出错误错误:标签处的属性高度=“-1”(重复2次)的负值无效请有人能在这方面帮助我JavaScriptdevicechart.jsvarDevicesgenerateData=function(){vardevicedata=newArray();vardeviceNames=["Working","GPSAntenna","PowerRemoved","SIMProblem","Servicing","Damaged"];va
myFunction.call(thisArg,arg1,arg2...)我的理解是,当我使用call方法并提供thisArg时,函数中的this值设置为我传入的对象.myFunction.bind(thisArg,arg1,arg2...)而另一方面,bind方法返回一个新函数,新函数的this上下文设置为我传入的对象。但我不明白的是为什么要使用bind而不是call。如果我只想更改this的上下文,call对我来说就足够了。那为什么要在IE8及以下浏览器中中断时使用bind。那么,与call相比,什么时候使用bind会更好? 最佳答案
我的actioncreator没有调用我的reducer。任何帮助都感激不尽。类型.jsexportconstSELECTED_FOOD='selected_food';index.js(Action创建者/Action)import{SELECTED_FOOD}from'./types';exportfunctionselectedFood({data}){console.log('SELECTED_FOOD**********************',data);return({type:SELECTED_FOOD,payload:data});}actioncreator中co