Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
202 views
in Technique[技术] by (71.8m points)

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

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

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...