# javascript new的实现
# 定义一个类
function Person(name) {
this.name = name || 'Obama'
}
1
2
3
2
3
# 实现
新建一个空对象,将对象的__proto__指向类的原型prototype,同时使用apply将该对象原型指向类,参数传入
function New(f) {
return function() {
var o = {"__proto__": f.prototype}
f.apply(o, arguments)
return o
}
}
// 新建对象
var o = New(Person)('Trump')
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9