JavaScript函数为什么会弹窗两次而且都是1?谁能告诉我这个函数的执行过程和顺序啊? fun
发布网友
发布时间:2022-04-28 23:12
我来回答
共3个回答
热心网友
时间:2023-10-14 03:00
第一次是在创建对象时弹的,也就是这一句 new a(1) 这里会执行一次 a() ,而a() 里面有一句 alert(this.vlaue),所以弹出的是 this.value
第二次是就是在外面调用时,也就是这一句 alert(new a(1).value) 这里就是直接访问本身的 value 值,而这一次的弹出,不是由内部的 alert(this.vlaue) 弹出的,而由外部的 alert()弹出的;而第一次的弹出,就是由内部的 alert(this.value) 来弹出的了;追问执行第一个alert时不是还没执行到a(1这个吗?怎么会alert出来1??)
热心网友
时间:2023-10-14 03:00
当你调用方法时候给a的value赋值1,
在function 方法体内中第一次alert 1,
获取 a(1).value的值之后,
执行alert(new a(1).value)再次alert 1
热心网友
时间:2023-10-14 03:00
function a(value){
this.value =value;
alert(this.vlaue);
}
alert(new a(1).value);
有2个alert啊
先alert(this.value)
再 alert(new a(1).value)
1.new a(1)
2.function a(value){
this.value =value;
alert(this.vlaue);
}
3.alert(new a(1).value)