创建对象时,忘记使用new关键词,应该怎么办?

eg: 有这样一个对象

var Person = function(name,age) {
    this.name = name;
    this.age = age;
}

正常的创建对象:

console.log(new Person('哈哈哈', 60)); // Person:{name: '哈哈哈', age: 60}

如果忘记了写new:

console.log(Person('哈哈哈', 60)); // undefind
console.log(window.name); // '哈哈哈'
console.log(window.age); // 60

如何在忘记写new的情况下也能正常的创建对象

var Person = function(name,age) {
    if(this instanceof Person){
        this.name = name;
        this.age = age;
    } else {
        return new Person(name, age);
    }
}

console.log(new Person('哈哈哈', 60));

在JavaScript设计模式这本书中学到的,嘻嘻。

个人笔记