1
我想了解類裝飾器中類裝飾器如何在我們希望替換構造器時工作。我已經看到了這個演示:在類型腳本中的類裝飾器
const log = <T>(originalConstructor: new(...args: any[]) => T) => {
function newConstructor(... args) {
console.log("Arguments: ", args.join(", "));
new originalConstructor(args);
}
newConstructor.prototype = originalConstructor.prototype;
return newConstructor;
}
@log
class Pet {
constructor(name: string, age: number) {}
}
new Pet("Azor", 12);
//Arguments: Azor, 12
一切都明白了,但此行:
newConstructor.prototype = originalConstructor.prototype;
我們爲什麼這樣做?
讓我們從你的代碼並不真正做你認爲它的事實開始。它不起作用。將ctor更改爲'constructor(public name:string,public age:number)',然後嘗試訪問實例成員('name'和'age'),你會得到'undefined'。檢查這個問題的正確方法做到這一點:https://stackoverflow.com/questions/39198811/can-we-change-the-constructor-behavior-using-typescript-class-decorators-i-mean –
嗨, 這段代碼來自互聯網,我不在乎它是否有效我只需要知道爲什麼我們需要這條線,因爲我已經在更多的例子中看到它 – RiskX