Javascript 如何在typescript构造函数运行之前设置一个属性
一些JavaScript库和框架提供了早期绑定属性的可能性,因此开发人员甚至可以在构造函数中使用绑定的属性。我需要做同样的测试 主要问题是bind属性在构造函数中使用,我无法实例化控制器以覆盖测试 不能更改类的构造函数(添加新参数或其他内容),因为创建类的逻辑由框架管理,我不想向类的构造函数添加任何可选/非可选参数 我试过类似的东西。不走运,因为我错过了一些东西Javascript 如何在typescript构造函数运行之前设置一个属性,javascript,typescript,constructor,Javascript,Typescript,Constructor,一些JavaScript库和框架提供了早期绑定属性的可能性,因此开发人员甚至可以在构造函数中使用绑定的属性。我需要做同样的测试 主要问题是bind属性在构造函数中使用,我无法实例化控制器以覆盖测试 不能更改类的构造函数(添加新参数或其他内容),因为创建类的逻辑由框架管理,我不想向类的构造函数添加任何可选/非可选参数 我试过类似的东西。不走运,因为我错过了一些东西 function createMyController(bindProperty, ...controllerArgs) {
function createMyController(bindProperty, ...controllerArgs) {
let myController = Object.create(MyController);
myController.bindProperty = bindProperty;
MyController.constructor.apply(myController, [...controllerArgs]);
// post creation assignments or modifications
return myController;
}
Typescript构造函数允许使用这样做。这种类型的绑定称为预绑定,例如在angularjs(Angular1)中使用过。这种预绑定背后的思想是在调用构造函数之前初始化一些属性 它可以通过首先启动某种类型的对象来解决。然后绑定所有需要的值。最后调用构造函数本身
function createMyController(bindProperty, ...controllerArgs) {
let myController = Object.create(MyController.prototype);
myController.bindProperty = bindProperty;
MyController.call(myController, ...controllerArgs);
// post creation assignments or modifications
return myController;
}
谢谢你的回答,但恐怕我不能更改构造函数的参数