请问老师这个的执行过程

请问老师这个的执行过程

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
       function Number(){
           this.one='5';
           this.two='6';
       }
      if(!this.one){
       console.log('one');
      }
    </script>
</body>
</html>

    请问老师这段代码的预解析是怎么回事?

function number并没有被执行不是吗。 为什么if可以访问到.this.one这个属性?预解析不是只会解析function中使用var声明的局部变量和函数吗

请老师讲解一下过程

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕糖 2018-12-17 11:23:54

“weixin_小布点_0”同学你好,这里跟Number没有关系哦,因为这里没有执行函数。这里的this.one会输出undefined,主要是因为this指向window对象,可以输出下this,会发现是window对象。对象的属性是可以调用的,没有的话,会是undefined,可以参考如下,输出下,例:

http://img1.sycdn.imooc.com//climg/5c1716910001eeaf02620114.jpg

希望能帮助到你,祝学习愉快!

好帮手慕糖 2018-09-09 12:06:46

你好,是的哦,这里没有执行函数,你可以直接把函数注释掉,会发现还是有输出,所以这里与函数是无关的。

你可以打印下this.one会是undefined,那么!undefined会是true哦。所以才输出了字符串one。

若能帮助到你,望采纳。

祝学习愉快~

  • 老师,如果以下代码,为什么最后不报错,预解析根本就没有this.one这个,为什么最后输出还是undefined呢? <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> function Number(){ this.one='5'; this.two='6'; } console.log(this.one) </script> </body> </html>
    2018-12-16 16:29:37
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师