阅读下面的代码,给出其运行结果。 <script type="text/javascript"> var number = 1900; var obj = { number: 1990, getNumber: function() { var f = ( a ) => a + 10; console.log(f(this.number)); //【1】 } } console.log(this.number); //【2】 obj.getNumber (); </script>
时间: 2024-02-15 19:27:00 浏览: 67
该代码的运行结果为:
1900
2000
解释:
在代码中,首先声明了一个变量 number,并赋值为 1900。然后声明了一个对象 obj,其中包含一个属性 number,值为 1990,以及一个方法 getNumber。在 getNumber 方法中,定义了一个箭头函数 f,该函数接受一个参数 a,并返回 a+10 的结果,然后调用该函数,传入 this.number 作为参数,并将结果输出到控制台。
接着,在代码的第 8 行调用 console.log(this.number),输出变量 number 的值,即 1900。
最后,在代码的第 10 行调用 obj.getNumber(),该方法内部会调用箭头函数 f 并输出结果,此时传入的参数为 obj 对象中的 number 属性,即 1990,经过箭头函数的计算,结果为 2000,输出到控制台。
相关问题
1、阅读下面的代码,给出其运行结果。 <script type="text/javascript"> var number = 1900; var obj = { number: 1990, getNumber: function() { var f = ( a ) => a + 10; console.log(f(this.number)); //【1】 } } console.log(this.number); //【2】 obj.getNumber (); </script> 答: 【1】 【2】
答:【1】输出2000,【2】输出undefined。原因是在全局作用域内,变量number没有被定义,所以输出undefined。在getNumber函数内部,使用箭头函数定义了一个f,这个箭头函数的this指向其父级作用域(即obj对象),所以f中的this.number就是obj中的number属性,值为1990。将1990加上10后,输出2000。
<script type="text/javascript"> var number = 1900; var obj = { number: 1990, getNumber: function() { var f = ( a ) => a + 10; console.log(f(this.number)); } } console.log(this.number); obj.getNumber (); </script>
这段 JavaScript 代码的执行过程如下:
1. 定义了变量 number 并赋值为 1900。
2. 定义了一个对象 obj,包含属性 number 和方法 getNumber。
3. 在 getNumber 方法中,定义了变量 f,它是一个箭头函数,接受一个参数 a,返回 a + 10 的值。
4. 在 getNumber 方法中,调用了 console.log 函数,输出 f(this.number) 的值,也就是箭头函数 f 的结果,将 obj 的 number 属性作为参数传入 f 中。
5. 在全局作用域中,调用了 console.log 函数,输出变量 number 的值,即 1900。
6. 调用 obj 的 getNumber 方法,输出箭头函数 f 的结果,将 obj 的 number 属性作为参数传入 f 中,所以输出 2000(1990+10)。
因此,最终的输出结果为:
1900
2000
阅读全文