gpt4 book ai didi

javascript - 我怎样才能摆脱在函数之前放置 "new"

转载 作者:行者123 更新时间:2023-11-28 15:28:09 24 4
gpt4 key购买 nike

我想知道如何才能摆脱在函数之前放置“new”的情况,例如:

new functionToDo("thingsToDo").iGotYouBruh("Halo Humans");

有没有一种可行的方法可以在没有"new"的情况下做到这一点?

这是我尝试在没有“new”的情况下使用的代码:

function local (title) {
var storeTitle = title;
this.addL = function(lString) {
var storeText = lString;
localStorage.setItem(storeTitle, storeText);
console.info("Locally stored " + storeTitle.toUpperCase() + " with " + storeText.substring(0, 10) + "... As text.");
};
this.removeL = function() {
localStorage.removeItem(storeTitle);
console.info("Locally removed " + storeTitle + ".");
};
this.getL = function () {
localStorage.getItem(storeTitle);
console.info("Locally got string of " + storeTitle + ": " + localStorage.getItem(storeTitle));
};
};

这是我必须执行的操作才能调用该函数:

new local("storedElement").getL();

最佳答案

这可以通过检查 this 是否是函数本身的实例并返回一个新实例来实现:

function local (title) {
if (!(this instanceof local)) {
return new local(title);
}

var storeTitle = title;
this.addL = function(lString) {
var storeText = lString;
localStorage.setItem(storeTitle, storeText);
console.info("Locally stored " + storeTitle.toUpperCase() + " with " + storeText.substring(0, 10) + "... As text.");
};
this.removeL = function() {
localStorage.removeItem(storeTitle);
console.info("Locally removed " + storeTitle + ".");
};
this.getL = function () {
localStorage.getItem(storeTitle);
console.info("Locally got string of " + storeTitle + ": " + localStorage.getItem(storeTitle));
};
};

关于javascript - 我怎样才能摆脱在函数之前放置 "new",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28377258/

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