老师,实例化那Cat后面的括号好像加不加都能运行?
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>6-4</title> </head> <body> <script> // 补充代码 function animal(name, num){ this.name = name; this.num = num; } function Cat(){}; Cat.prototype = new animal('hellokitty',3); Cat.prototype.info = function(){ alert("name: " + this.name + "--" + "num: " + this.num); } var cat = new Cat();//老师,这里的括号有没有好像都行? cat.info(); </script> </body> </html>
1
收起
正在回答
2回答
你好,同学指的是哪里不传参呢,建议描述具体一些,便于准确定位问题所在。
给你举一个加不加括号区别的例子,实例化的时候不赋值给变量,直接调用属性:
(1)第一个输出结果会报错:
(2)第二个输出结果:
因为new 的运算优先级要小于点调用的运算优先级 ,new Cat.age执行顺序为:先执行Cat.age,此时返回结果为undefined;后执行new,因new后面必须跟构造函数,所以new undefined会报错。
在 new实例化的时候后面的括号不是执行的意思,是将优先级提升上去了,所以可以在声明时立即调用对象的属性和方法,所以new Cat.age代码相当于new (Cat.age),而new Cat().age相当于(new Cat()).age。
自己可以再理解下,祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星