草庐IT

this_call

全部标签

javascript - Function.bind.bind(Function.call) 如何取消柯里化(Currying)?

我的代码库中有这一行:varuncurryThis=Function.bind.bind(Function.call);我正在努力解决这个问题。据推测,它是uncurries。我该如何解决这个问题?我猜这是Function.bind的一个版本,它自己的this绑定(bind)到Function.call。对我的帮助还不够。而且我还没有发现任何用途,所以我什至不确定您是将其独立调用还是需要将其“作为一种方法”调用,只是,您知道,先绑定(bind)它。 最佳答案 它将call函数传递给bind函数,bind函数本身就是this的值>。因

javascript - this.nextSibling 不工作

我希望下面的代码能够提醒“out”thisisoutput但它会提示undefined为什么? 最佳答案 nextSibling选择元素的下一个兄弟节点。下一个节点也可以是textNode,它没有id属性,因此您会得到undefined值。正如另一个答案所建议的那样,您可以使用nextElementSibling属性,该属性指的是nodeType为1的下一个同级节点(即Element对象)或删除元素之间的隐藏字符。请注意,IE8不支持nextElementSibling属性。 关于jav

javascript - TypeScript 中 'this' 的作用域

我有一个非常简单的类,但在Typescript中定义“this”时已经遇到了麻烦:typescript//////moduleProblem{exportclassIndex{detailsUrl:string;constructor(){$('.problem-detail-button').click((e)=>{e.preventDefault();var$row=$(this).closest('tr');//thismustbethatofthecallbackvarproblemId:number=$row.data('problem-id');$.ajax({url:th

javascript - 如何使用 attachEvent 引用调用者对象 ("this")

在IE中使用.attachEvent()方法,如何使用this?在普通浏览器中,使用.addEventListener,varthis指向元素,而在IE中它指向窗口对象。我需要它来处理以下代码:varelement=//theelement,doesn'tmatterhowitisobtainedelement.addAnEvent=function(name,funct){if(element.addEventListener)//WorksinNORMALbrowsers...elseif(element.attachEvent){element.attachEvent("on"+

javascript - 为什么要将 'null' 传递给 'apply' 或 'call' ?

根据thisJavaScriptreference:ThevaluenullisaJavaScriptliteralrepresentingnulloran"empty"value,i.e.noobjectvalueispresent.ItisoneofJavaScript'sprimitivevalues.functiongetMax(arr){returnMath.max.apply(null,arr);}显式传递关键字this不会更清晰,或者至少更具可读性吗?再一次,在这一点上我可能不明白你为什么要使用null。 最佳答案 W

Javascript 回调丢失 'this'

我有一个发布者,我在这个对象中丢失了this。以下JavaScript片段的输出为我提供了"some-id",然后是undefined。当我在回调函数中使用this时,范围超出了对象,它不能再使用this了。我怎样才能让回调使用“this”或至少可以访问该对象?因为我会制作多个对象,所以我无法创建像存储这样的“静态”。这是我的测试代码,您可以使用它来重现我的问题。我想要的是CheckBox.doSomething()返回this.id的值,该值应该与此测试的some-id匹配案例。functionCheckBox(input_id){this.id=input_id;this.doSo

javascript - this.setState 是否在 react 中返回 promise

我使我的componentWillMount()异步。现在我可以将await与setState一起使用。示例代码如下:componentWillMount=async()=>{const{fetchRooms}=this.propsawaitthis.setState({})fetchRooms()}所以这里的问题是this.setState返回promise因为我可以使用await吗?编辑当我放置await时,它会按顺序运行1,2,3当我删除await时,它会运行1,3,2??componentWillMount=async()=>{const{fetchRooms}=this.pr

javascript - Chrome 扩展,javascript : Why is this firing twice?

我的(测试)Chrome扩展中有一段非常非常简单的代码:functiontest(){alert("Intest!");}chrome.tabs.onUpdated.addListener(function(tabid,changeinfo,tab){varurl=tab.url;if(url!==undefined){test();}});我的问题是,为什么test()会触发两次?更重要的是,如何让它只触发一次? 最佳答案 查看调度事件时的不同状态。我认为,当状态为“正在加载”或状态为“完成”时,它会被分派(dispatch)一次

javascript - 转移 { ..this.props } 但排除某些

是否可以将props向下传输到子组件,其中{..this.props}用于更简洁的语法,但是排除某些props,如className或id? 最佳答案 您可以使用解构来完成这项工作:const{className,id,...newProps}=this.props;//eslint-disable-line//`newProps`variabledoesnotcontain`className`and`id`properties由于此语法目前是ECMAScript提案(Rest/SpreadProperties),您需要转换代码以

javascript - 类型错误 : Cannot call method 'then' of undefined Angularjs

我是Angular的新手,在进行同步操作时遇到了问题。我已经解决了AngularController出现的几个问题,我从newController文件中得到错误“无法调用未定义的方法”。angular.module('newApp.newController',['angularSpinner','ui.bootstrap']).controller('newController',function($q,$scope,utilityFactory,$http){utilityFactory.getData().then(function(data){console.log("succ