gpt4 book ai didi

javascript - 不带实例调用原型(prototype)

转载 作者:行者123 更新时间:2023-11-28 13:11:51 26 4
gpt4 key购买 nike

我有一个带有方法的类

function MyClass(name){
this._name = name;
}
MyClass.prototype.test=function(){
console.log(this._name);
}

如果创建新实例,这将起作用

var a = new MyClass('demo');
a.test();

但是,现在我想像函数一样调用这个类,而不需要创建实例

MyClass('demo2').test();

这可能吗?

最佳答案

您可以检查 this 是否是该类的实例,如果检查为 false,则意味着它作为函数调用,您可以返回一个新实例:

function MyClass(name){
if (!(this instanceof MyClass)) {
return new MyClass(name);
}
this._name = name;
}

通过这种方式,您可以使用或不使用 new 关键字来获取该类的新实例。

关于javascript - 不带实例调用原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41807040/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com