草庐IT

作用域函数

全部标签

带有对象表示法的javascript函数参数

有什么区别functionupdateSomething(item){}和functionupdateSomething({items}){}?第一个中的item变量也可以是对象,为什么第二个使用对象表示法?什么时候用前者,什么时候用后者? 最佳答案 这是来自ES2015的参数解构。在第二种情况下,您将局部变量初始化为参数的items属性的值。functionupdateSomething({items}){大致相当于functionupdateSomething(obj){varitems=obj.items;其他一些例子here

javascript - 我什么时候需要使用 super(props) 将 prop 传递给 React 组件的构造函数?

这个问题在这里已经有了答案:What'sthedifferencebetween"super()"and"super(props)"inReactwhenusinges6classes?(10个答案)关闭6年前。很多时候我们在构造函数中发送props但我们从来没有在构造函数中的任何地方使用this.props那么为什么需要传递它以及何时需要这样做。classAppextendsReact.Component{constructor(props){super(props);//Whendoweneedtosendpropstotheconstructorthis.state={data:

javascript - ESlint 是否有关于函数中第一个语句之前的空行的规则?

由于ESLint,我发现了一个规则newline-before-return关于return语句之前的空行。但是在函数的第一条语句之前没有看到关于空行的规则。例如:function(a){varb=+a;}ESlint对此有规定吗?如果有,这条规则的名称是什么?谢谢 最佳答案 padded-blocks规则允许您在block的开始和结束处要求换行,包括函数体。除了函数体之外,它还涵盖了if语句、for和while循环以及其他类似block的结构体,您可以可能想要也可能不想要。尝试将以下代码粘贴到demo中,看看它是否适合您:/*es

javascript - 了解 Javascript 的 _this、不同类型的函数调用以及如何在函数内部调用函数?

我正在学习如何对现有的javascript代码进行逆向工程,并且遇到了一些问题,这是由于我不了解核心javascript的工作原理。下面是代码以及我的评论的屏幕截图。代码以声明varwarper开始。然后warper变量等于函数内的函数?为什么它不是通常调用的functionWarper(),而是在另一个函数中?我注意到了_this的使用。这与通常使用的常规this有何不同?#btn-submitid被设置为在点击时激活。我可以看到它调用了click_submit函数,但为什么它是Warper.prototype.click_submit而不是click_submit()?我的最后一个

javascript - 未捕获的 TypeError : this. 方法不是函数 - Node js 类导出

这个问题在这里已经有了答案:Howtoaccessthecorrect`this`insideacallback(13个答案)关闭5年前。我是node.js的新手,我正在尝试要求一个类。我用过https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes作为引用。但是,当我这样做时://talker.jsclassTalker{talk(msg){console.log(this.say(msg))vart=setTimeout(this.talk,5000,'helloagain');}say(msg){r

javascript - 如何在 ES6 中调用类的父类的父类的构造函数?

我正在使用ES6类,我的类(A)扩展了类B,类B扩展了类C。A如何扩展方法,然后调用C的该方法版本。classC{constructor(){console.log('classc');}}classBextendsC{constructor(){super()console.log('no,Idon'twantthisconstructor.');}}classAextendsB{constructor(){//WhatshouldIbedoinghere?IwanttocallC'sconstructor.super.super();}}编辑:谢谢大家,我将停止尝试做这种愚蠢的事情

javascript - screen.lockOrientation 不是函数

我想在Chrome中使用Js中的API屏幕。if(navigator.userAgent.match(/(android|iphone)/gi)){if('orientation'inscreen){//console.log('//APIsupported,yeah!');//console.log('neworientationis',screen.orientation);screen.lockOrientation('landscape');}else{console.log('//APInotsupported');}}else{//alert('none');}我的错误js

javascript - Immutable.Map.deleteAll() 不是函数

考虑以下代码:constperson=Immutable.Map({name:'John',surname:'Maverick',age:39});constmutated=person.deleteAll(['name','age']);预期结果是mutated现在是Map的新实例,其中键name和age已删除。但是,抛出异常:UncaughtTypeError:person.deleteAllisnotafunction检查Immutable.Map原型(prototype)的可用方法时,没有deleteAll和removeAll方法。它们被移除了吗?该方法在ImmutableJS

javascript - React-router v4 页面刷新不起作用

我可能遗漏了历史记录或其他内容,但是当我刷新子路径(例如/login)或我得到的任何其他路径上的页面时:403禁止访问代码:拒绝访问消息:拒绝访问RequestId:075CAA73BDC6F1B9HostId:O1n36xVCoeu/aLaSMrtCkAFZruWk5ZcO4RIrznEhvUxdu8lFEhL0XcKw2L4W4J7VYYet+HDv8tc=请记住,只要我不刷新,路由就可以正常工作。假设我转到/(主页)。在它上面,我有一个hyperlink映射到我的react-router路由中的路径/login。我单击超链接,它工作正常,根据我的react-router路由在re

javascript - 防止 JavaScript 闭包继承作用域

我正在寻找一种奇特的方法来防止闭包继承周围的范围。例如:letfoo=function(t){letx='y';t.bar=function(){console.log(x);//=>'y'});};我只知道两种方法来阻止共享范围:(1)使用影子变量:letfoo=function(t){letx='y';t.bar=function(x){console.log(x);//=>'?'});};(2)把函数体放在别处:letfoo=function(t){letx='y';t.bar=createBar();};我的问题是-有谁知道防止闭包继承JS范围的第三种方法吗?花哨的东西很好。我