问题
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 the
alert("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