如何让ES6静态函数中的thisclass指向函数本身
How to make the this in the static function of the ES6 class point to the function itself
我想获取ES6中的静态函数名class,但我这样做时没有得到正确的结果
class Point {
static findPoint() {
console.log(this.name) // <- I want to print "findPoint" but get "Point"
}
}
Point.findPoint()
如何获取静态方法的名称?
一种选择是创建一个 Error
并检查其堆栈 - 堆栈中的顶部项目将是当前函数的名称:
class Point {
static findPoint() {
const e = new Error();
const name = e.stack.match(/Function\.(\S+)/)[1];
console.log(name);
}
}
Point.findPoint();
虽然 error.stack
在技术上 是非标准的,但它 compatible 对于包括 IE 在内的每个主要浏览器都是
this.name
引用 class 名称。使用 this.findPoint.name
获取静态函数名。语法必须是 object.someMethod.name
。你必须说出你想要的方法名称。希望对您有所帮助。
class Point {
static findPoint() {
console.log(this.findPoint.name)
}
}
Point.findPoint()
我想获取ES6中的静态函数名class,但我这样做时没有得到正确的结果
class Point {
static findPoint() {
console.log(this.name) // <- I want to print "findPoint" but get "Point"
}
}
Point.findPoint()
如何获取静态方法的名称?
一种选择是创建一个 Error
并检查其堆栈 - 堆栈中的顶部项目将是当前函数的名称:
class Point {
static findPoint() {
const e = new Error();
const name = e.stack.match(/Function\.(\S+)/)[1];
console.log(name);
}
}
Point.findPoint();
虽然 error.stack
在技术上 是非标准的,但它 compatible 对于包括 IE 在内的每个主要浏览器都是
this.name
引用 class 名称。使用 this.findPoint.name
获取静态函数名。语法必须是 object.someMethod.name
。你必须说出你想要的方法名称。希望对您有所帮助。
class Point {
static findPoint() {
console.log(this.findPoint.name)
}
}
Point.findPoint()