Javascript 更改范围(“this”的值)
我正在尝试创建一个记录器,它输出一条消息和调用它的类,如下所示:Javascript 更改范围(“this”的值),javascript,console,typescript,Javascript,Console,Typescript,我正在尝试创建一个记录器,它输出一条消息和调用它的类,如下所示: const __log = (...values: Array<any>) => console.log("%c" + this.constructor["name"], CLASS_STYLE, ...values); const\uu log=(…值:数组(带Angular2组件)。删除类App中的//const\uu log…注释将显示我想要的内容。您可以通过这样做来归档您想要的内容: functi
const __log = (...values: Array<any>) =>
console.log("%c" + this.constructor["name"], CLASS_STYLE, ...values);
const\uu log=(…值:数组(带Angular2组件)。删除类App
中的//const\uu log…
注释将显示我想要的内容。您可以通过这样做来归档您想要的内容:
function __log(...values: Array<any>)
{
console.log("%c" + arguments.callee.caller.name, CLASS_STYLE, ...values)
}
function\uu log(…values:Array在问题中,您使用带有箭头符号的ES6(…)=>{…}
(它固定了这个
的值),而在示例(plunker)中,您使用的是一个普通的旧函数(){…}
。哪个版本是“正确的”一个?@Andreas我一直在尝试不同的方法,请参阅更新的plunker。任何有效的解决方案都是“正确的”解决方案(:谢谢,这是非常有用的。我最终使用了类似的()方法来解释嵌套。您的示例仅在构造函数中有效。