JavaScript
类型检测
位运算移位运算符
手动实现New 操作符
function person (sex, weight, color){
this.sex = sex
this.weight = weight
this.color = color
}
function newSelf(fn) {
// 第一步:创建一个新对象
var obj = {}
// 新对象继承Person.prototype
obj.__proto__ = fn.prototype
return function () {
// 使用指定的参数调用构造函数 Person ,并将 this 绑定到新创建的对象
fn.apply(obj,arguments)
return obj
}
}
var person2 = newSelf (person)('男', '75kg', 'yellow')
console.log(person2.__proto__ == person.prototype) //true
\