以下代码调用console.log打印“hello”:console.log.call(console,"hello")但是,下面的代码会抛出TypeError:x=console.log.callx(console,"hello")抛出:UncaughtTypeError:xisnotafunctionat:1:1谁能解释一下这个奇怪的场景?(当然call和apply都是一样的) 最佳答案 .call从其this参数获取要调用的函数。你通过x调用它,没有this参数,所以它没有函数可以调用(或者更确切地说,它试图调用window)
在JavaScript中,我想知道new是否有什么特别之处,或者它是否只是call()的语法糖。如果我有这样的构造函数:functionPerson(name,age){this.name=name;this.age=age;}是varbob=newPerson("Bob",55);任何不同于varbob;Person.call(bob=newObject(),"Bob",55);? 最佳答案 它们在你的例子中并不等价,因为bob没有继承自Person.prototype(它直接继承自Object.prototype).等效版本是P
这个问题在这里已经有了答案:Reasonbehindthisselfinvokinganonymousfunctionvariant(5个答案)关闭8年前。backbone.js源代码使用这样的函数包装器:(function(){...}).call(this);见http://backbonejs.org/docs/backbone.html#section-185.更常见的是,我看到使用以下内容:(function(){...})();这两者的行为何时不同?我的印象是它们是等价的,但我认为鉴于Backbone使用.call(this)而不是较短的替代方案,所以一定存在差异。
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。关闭8年前。这个问题是由于打字错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。更详细地描述您的问题或includeaminimalexample在问题本身。Improvethisquestion每当我在我的代码中按下某个按钮时,我都会收到该错误,删除以下行会使错误消失并且该按钮起作用:$(selector_value_object).html(value_object);我
我昨天才开始使用vue.js编码,我不知道如何在不使用“传统”JS方式(即document)的情况下“关注”文本框。getElementById('myTextBox').focus().最初,我的文本框是隐藏的。我有一个“开始”按钮,当用户点击它时,会显示文本框,我想在那里设置focus,可以这么说。我已经尝试使用ref,但无济于事(请参阅下面的代码)。HTML:Javascriptexportdefault{name:'game',methods:{startTimer(){setTimeout(function(){/*.focus()won'tworkwithoutthis*/
这是我的用例getSomeFields(persons,fields){letpersonsWithSpecificFields=[];_.each(persons,(person)=>{letpersonSpecificFields={};_.each(fields,(field)=>{//hereimthinkingtomodifythefieldtomatchthemethodname//(ifsomethinglike__callasinphpisavailable)//e.g.fieldisfirst_nameandiwanttochangeittogetFirstNamep
我有以下服务器代码:Meteor.startup(function(){Meteor.publish("AllMessages",function(){lists._ensureIndex({location:"2d"});returnlists.find();});});Meteor.methods({getListsWithinBounds:function(bounds){lists._ensureIndex({location:"2d"});returnlists.find({"location":{"$within":{"$box":[[bounds.bottomLeftLn
我使用knockoutJS,当我使用“fromJS”时出现以下错误TypeError:Cannotcallmethod'fromJS'ofundefined我的JavaScript代码$(document).ready(function(){varPersonModel=function(data){ko.mapping.fromJS(data,{},this);};vardata=$.getJSON("http://localhost:40913/candidate/index/1",function(data){viewModel=newPersonModel(data);ko.a
我两次尝试将消息发布到JSpecGoogleGroup显然失败了,我在这里发帖。我在使用JSpec时遇到了问题显然通过某种测试进入无限递归循环(如下)。有任何想法吗?我的代码有问题还是JSpec?我正在通过RubyGem运行JSpec2.11.2。错误是“RangeError:超出最大调用堆栈大小。”(Safari)和“内部错误:递归过多”(FF/Mac)。我可以使用Firebug控制台将项目添加到房间,没有任何错误。要重现该问题,请使用“jspecinittest”创建模板jspec项目。然后像这样编辑以下文件:你的lib.core.jsvarGame={};Game.item=fu
我正在开发我的开源项目Downloadify,到目前为止,它只是处理返回字符串以响应ExternalInterface.call命令。我正在尝试使用JSZip组合一个测试用例和Downloadify在一起,最终结果是在浏览器中动态创建一个Zip文件,然后使用FileReference.save保存到磁盘。但是,这是我的问题:JSZip库可以返回Zip的base64编码字符串,或原始字节字符串。问题是,如果我返回该字节字符串以响应ExternalInterface.call命令,我会收到此错误:Error#1085:Theelementtype"string"mustbeterminat