本文共 936 字,大约阅读时间需要 3 分钟。
//创建用户类class User { //对于写个给太麻烦了 // constructor(firstName,lastName,age) { // this.firstName=firstName; // this.lastName=lastName; // this.age=age; // }}/** * 直接对构造函数进行代理 * @param Class 对象 * @param propNames 对应构造函数的参数 * @returns {any} * @constructor */function ConstructorProxy(Class, ...propNames) { return new Proxy(Class, { construct(target, argumentsList) { const obj = Reflect.construct(target, argumentsList) propNames.forEach((name, i) => { obj[name] = argumentsList[i]; }) return obj; } })}const UserProxy = ConstructorProxy(User, "firstName", "lastName", "age")console.log(UserProxy)const obj = new UserProxy("w", "q", 18);console.log(obj)//创建Monster类class Monster {}const MonsterProxy = ConstructorProxy(Monster, "attack", "defence", "hp", "rate", "name")const m = new MonsterProxy(10, 20, 100, 30, "怪物")console.log(m);
转载地址:http://rsamz.baihongyu.com/