例如一个类A
我们可以在构造函数的开头使用
_classCallCheck来检测this指针
function A() { _classCallCheck(this, A);}
function _classCallCheck(instance, Constructor)
{
if (!(instance instanceof Constructor))
{ throw new Error("error");
}
}
原理是当A函数被直接调用时,this指针指向全局window对象(浏览器环境下),这样就会抛出一个错误。
但是如果使用new A()构造新对象,此时this指针指向该新的a对象实例,所以就不会报错