JS面向对象写法总结

众所周知,JavaScript是一门面向对象的操作语言,而我们想要用JavaScript对象化写法的时候,不得不提出一个操作符,叫做new操作符,那么不用new操作符和用new操作符有什么区别呢?

用new和不用new的区别

首先,我们去看下new在JavaScript里面的用法,按照javascript语言精粹中所说,如果在一个函数前面带上new来调用该函数,那么将创建一个隐藏连接到该函数的prototype成员的新对象,同时this将被绑定到那个新对象上。这句话说得很抽象,我们根据代码来理解。

1
2
3
4
5
6
7
8
9
10
11
12
function foo(){
this.name = "John";
this.age = 25;
var born = 1994;
return this.age;
}
//没用new关键字
var foo2 = foo();
console.log(foo2);//23
//用new关键字
var foo3 = new foo();
console.log(foo3);//foo {name: "John", age: 23}