假设我想要三个类型的对象Room。这三个对象将bedroom是livingroom和bathroom。Room有两个属性length和breadth,和一个方法myFunc。我使用构造函数方法来创建三个必需的对象:
function Room(len, bred, myFunc) {
this.len = 5;
this.bred = 8;
this.myFunc = alert();
}
var bedroom = new Room();
var livingroom = new Room();
var bathroom = new Room();
问题是,当我运行此脚本myFunc时,会执行三次,显示警报。我的想法是,由于new关键字将函数转换为对象,因此它不能执行该对象的方法——typeof new Room返回"object"。
我的问题是:
如果该语句
new Room();将Room()函数的副本转换为对象,那么这不等同于使用文字符号创建对象吗?如果是,那么不应该var bedroom = new Room();只将Room 对象的属性分配给卧室对象吗?为什么它执行对象方法?如何在不执行其方法的情况下创建对象?