Why commenting/uncommenting alert() in constructor toggles variable as part of the obj instances

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-07 08:22:12

问题


In the following code, if I comment //alert("Your Name is: " +fname); in the constructor function then 'alert(p1.fname);alerts "Suresh" and If I remove the comment out thealert("Your Name is: " +fname);then browser console gives out the error: fname is not defined`

function person () {
    this.fname = "Suresh";
    alert("Your Name is: " +fname);
  }

  var p1 = new person();

  alert(p1.fname);

I am puzzled by this behaviour. Pls explain

thanks


回答1:


You're using a variable that doesn't exist in the first alert(), so get you an error message telling you the variable is not defined`

There is no variable named fname inside the person() function, it's called this.fname, just like you created it

function person () {
    this.fname = "Suresh";
    alert("Your Name is: " + this.fname);
  }

  var p1 = new person();

  alert(p1.fname);

FIDDLE



来源:https://stackoverflow.com/questions/34290132/why-commenting-uncommenting-alert-in-constructor-toggles-variable-as-part-of-t

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!