在 JavaScript 中,构造函数是一种特殊的函数,用于创建对象实例。它们通常以大写字母开头,以区分普通函数。构造函数通过使用 new 关键字来调用,创建一个新的对象,并将 this 绑定到该对象上。
原理如下:
function MyNew(Func, ...args) {
// 创建一个新对象,并将其原型指向构造函数的原型
const obj = Object.create(Func.prototype)
Func.apply(obj, args)
return obj
}
function Foo(a, b) {
this.a = a
this.b = b
}
const foo = MyNew(Foo, 1, 2)
console.log(foo.a)
在 JavaScript 中,每个对象都有一个内部属性 [[Prototype]],指向另一个对象,这个对象被称为原型。当访问一个对象的属性时,如果该属性不存在于对象本身,JavaScript 会沿着原型链向上查找,直到找到该属性或到达原型链的末尾(即 null)。