MST

星途 面试题库

面试题:JavaScript 为类动态添加静态方法及考虑作用域问题

有一个类定义为:class AnotherClass { constructor() {} } 要求动态添加一个静态方法 'calculateSum',该方法接受两个参数并返回它们的和。并且要说明如果在这个静态方法内部使用 this,它会指向什么,为什么?
35.6万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

在JavaScript中,可以使用以下方式为AnotherClass动态添加静态方法calculateSum

class AnotherClass {
    constructor() {}
}

AnotherClass.calculateSum = function(a, b) {
    return a + b;
};

在这个静态方法内部使用this,它会指向AnotherClass。这是因为在JavaScript中,静态方法是直接通过类名来调用的,this会指向调用该方法的对象,而静态方法是通过类本身调用,所以this指向类本身,即AnotherClass