草庐IT

this_key

全部标签

javascript - IE8 Array.prototype.slice : 'this' is not a JavaScript object

我只在IE8中收到此错误消息,我不知道如何转换现有函数以兼容IE8。_initEvents:function(){varself=this;Array.prototype.slice.call(this.menuItems).forEach(function(el,i){vartrigger=el.querySelector('a');if(self.touch){trigger.addEventListener('touchstart',function(ev){self._openMenu(this,ev);});}else{trigger.addEventListener('cl

javascript - 试图找出一些js代码中的 'this'

functionbuttonClicked(){vartext=(this===window)?'window':this.id;console.log(text);}varbutton1=document.getElementById('btn1');varbutton2=document.getElementById('btn2');button1.onclick=buttonClicked;button2.onclick=function(){buttonClicked();};问题:点击button1,显示:btn1,点击button2和button3,显示:window,为什

javascript - 为什么 "this"的值会改变。?

我正在学习javascript,我遇到了一个疑问。为什么“this”的值在第一个示例中未定义,但在第二个示例中打印正确。示例1:varmyNamespace={myObject:{sayHello:function(){console.log("nameis"+this.myName);},myName:"john"}};varhello=myNamespace.myObject.sayHello;hello();//"nameisundefined"示例2:varmyNamespace={myObject:{sayHello:function(){console.log("Hi!My

javascript - 调用 $(this) 时,jQuery 会重新查询 DOM 吗?

在下面的代码中,当$(this)被调用时,jQuery是否重新查询DOM,就好像选择器已传递给它一样(使用对象的某些属性作为选择器),或者jQuery是否保留先前返回的对象?$('.someButton').on('click',function(){$(this).remove();//Isthisanotherlookup,orjustawrapperforthepreviouslyreturnedobject?}); 最佳答案 它不会重新查询DOM,this已经是一个元素。jQuery只是将上下文设置为元素,调整长度,然后返回

javascript - JQuery $(this) 在函数参数中不起作用

以下代码无效:$(".countdown").circularCountdown({startDate:$(this).attr('data-start'),endDate:$(this).attr('data-end'),timeZone:$(this).attr("timezone")});下面那个工作正常,$(".countdown").circularCountdown({startDate:$(".countdown").attr('data-start'),endDate:$(".countdown").attr('data-end'),timeZone:$(".count

javascript - "this"上下文输出无法理解

我很难理解下面的代码。functionfoo(){console.log(this.a);}varobj={a:2,foo:foo};vara=4;obj.foo();setTimeout(obj.foo,100);setTimeout(obj.foo.bind(obj),100);它的输出为2、4、2,我无法理解。 最佳答案 第一种情况,obj.foo();foo中的this将指向obj,因为您已将该函数分配为该特定对象的属性。第二种情况,setTimeout(obj.foo,100);在setTimeout中,传递的函数将在窗口

javascript - 防止 this.state 与 setState 一起使用

Thereference状态:setState()doesnotalwaysimmediatelyupdatethecomponent.Itmaybatchordefertheupdateuntillater.Thismakesreadingthis.staterightaftercallingsetState()apotentialpitfall.Instead,usecomponentDidUpdateorasetStatecallback(setState(updater,callback)),eitherofwhichareguaranteedtofireaftertheupd

javascript - AngularJS - 哪个范围在性能方面更好? Object.key 还是一些变量?

假设我必须存储客户信息,并且要管理双向绑定(bind),我将在此处使用$scope。所以我的疑问是,哪种方法更好?$scope.firstname="foo";$scope.lastname="bar";$scope.cellno="1234567890";$scope.email="foobar@example.com";或$scope.customerDetailsObj={};$scope.customerDetailsObj.firstname="foo";$scope.customerDetailsObj.lastname="bar";$scope.customerDetai

javascript - 当任何查看 js 代码的人都可以看到 javascript API key 时,它有什么意义

我见过像Google这样的服务要求您在进行javascript调用时添加APIkey,就像这样。https://www.google.com/jsapi?key=thekeygoeshere当可以看到代码并且可以读取key时,拥有这个javascriptapikey有什么意义。不能有人复制这个key并将其用于他们自己的站点吗?或者他们是否在后台做了其他事情来确保key属于进行调用的站点? 最佳答案 大概他们会检查refererHTTPheader。大多数用户发送它。所以如果是:匹配key的站点,他们可以正常运行。不匹配key的网站,

javascript - Chrome 扩展程序发送 key

有没有办法从chrome扩展程序模拟按键?例如,当我单击扩展按钮时,我可以指定将键“ABC”发送到浏览器窗口。 最佳答案 很遗憾,没有(这是一个javascript问题,ChromeAPI不提供任何帮助)。您所能做的就是发送一个按键事件(例如,参见thisquestion),但您无法模拟实际的按钮按下。如果父页面监听按键事件,那么它将捕获它(这个事件不会像真正的按钮按下事件那样拥有所有信息,所以它可能仍然不起作用),否则什么也不会发生。 关于javascript-Chrome扩展程序发送