我有一个带有方法的类
function MyClass(name){
this._name = name;
}
MyClass.prototype.test=function(){
console.log(this._name);
}Run Code Online (Sandbox Code Playgroud)
如果创建新实例,则此工作
var a = new MyClass('demo');
a.test();Run Code Online (Sandbox Code Playgroud)
但是,现在我想像函数一样调用这个类而不创建实例
MyClass('demo2').test();Run Code Online (Sandbox Code Playgroud)
这可能吗?
您可以检查是否this是该类的实例,如果检查为 false,则意味着它作为函数调用,您可以返回一个新实例:
function MyClass(name){
if (!(this instanceof MyClass)) {
return new MyClass(name);
}
this._name = name;
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以使用或不使用关键字来获取该类的新实例new。
| 归档时间: |
|
| 查看次数: |
402 次 |
| 最近记录: |