当前位置: 首页 > Web前端 > HTML

本题与webstorm调试接口

时间:2023-03-29 11:01:49 HTML

this指针题1exportclassComponent{2task:Task;3test(){4_.foreach(this.task.propreties,function(property){5consttask=this.task;6})}}第5行报错:thisisundefined。原因比较容易判断:在foreach中,这不是一个组件,而是lodash提供的功能https://www.lodashjs.com/docs...查了官网,并没有提到这个。所以查看Javascript中的foreach函数,可以看到Javascript中的foreach函数有一个可选参数,thisArg作为执行回调函数callbackFn时this的值。所以,如果我们在Javascript中使用foreach函数,我们可以采用如下解决方案:1exportclassComponent{2task:Task;3test(){4this.task.propreties.foreach(property=>{5consttask=this.task;6},this)}}同时我们也可以使用task作为thisAry参数,比如第六行。这时候,这意味着任务。1exportclassComponent{2task:Task;3test(){4this.task.propreties.foreach(property=>{5consttask=this;6},task)}}值得注意的是如果thisArg参数有值,每次调用callbackFn函数时,this都会指向thisArg参数。如果省略thisArg参数,或者它的值为null或undefined,则this指的是全局对象。所以其实在Javascript中,不用加this,它指的是全局对象。回到前面,由于lodash提供的_.foreach()函数没有javascipt中的thisArg参数,我们可以自己定义一个this。常量那个=这个;后面用到这个的地方,直接换成这个即可。1exportclassComponent{2task:Task;3test(){4constthat=this;5_.foreach(that.task.propreties,function(property){6consttask=that.task;7})}}Webstrom或idea调试界面按钮1、首先第一组按钮,一共8个按钮,从左到右分别是:ShowExecutionPoint(Alt+F10):如果你的光标在其他行或其他页面,单击此按钮跳转到当前代码执行行。StepOver(F8)Stepover,逐行往下走,如果这一行有方法,则不会进入方法。StepInto()步进,如果当前行有方法,就可以进入方法,一般用于进入自定义方法,不会进入官方类库的方法。ForceStepInto(Alt+Shift+F7):Forcestepin,可以进入任意方法,查看底层源码时可以使用该方法进入官方类库。StepOut(Shift+F8):Stepout,从踏入的方法退出到方法调用。这个时候方法已经执行了,但是赋值还没有完成。DropFrame(defaultnone):回滚断点。返回到方法的调用处,上下文中所有变量的值也返回到那个时候。按钮可以点击的前提是:当前方法有父方法,如果在main方法中,按钮是灰色的,不能点击;RuntoCursor(Alt+F9):运行到光标处,可以将光标定位在需要查看的行上,然后使用这个函数,代码会运行到光标所在行,没有断点。评估表达式(Alt+F8):评估表达式。2、第二组按钮,共7个按钮,从上到下依次为:Rerun'xxxx'重新运行程序,会关闭服务,然后重新启动程序。恢复程序(F9):恢复程序,比如你在第20行和第25行有两个断点,当前运行到第20行,按F9,然后运行到下一个断点(即第25行),再按F9运行整个过程,因为后面没有断点。停止'xxx'(Ctrl+F2):连续按两次关闭程序。有时候你会发现,关闭服务再重启,会报端口被占用。这是因为服务没有完全关闭,所以需要杀掉所有的JVM进程。查看断点(Ctrl+Shift+F8):查看所有断点。7.MuteBreakpoints:静音断点。选择此项后,所有断点都会变成灰色,断点将失效。按F9直接运行程序。再次点击,断点变为红色,有效。如果只想禁用某个断点,可以在断点上右击取消Enabled。