gpt4 book ai didi

javascript - 链接对象时如何使用相同的方法?

转载 作者:行者123 更新时间:2023-11-29 10:52:05 25 4
gpt4 key购买 nike

var string = function (base) { 
return {
add: function (added) {
return base + added;
}
}
}

text = string("robots").add(" are awesome");

console.log(text);

// robots are awesome

text2 = string("robots").add(" are awesome").add(" everytime!");

console.log(text2);

// TypeError: Object robots are awesome has no method 'add'

我如何使它起作用?您可以做些什么来在函数范围内的某些对象之间共享“添加”方法?

最佳答案

如果只返回string(base + added)。它不会正常工作。当您 console.log 时,它会返回一个对象。

var string = function (base) { 
return {
add: function (added) {
return string(base + added);
}
}
}
console.log(string("test ").add("this ").add("thing"));
// outputs [object Object]

以上示例无法满足您的要求。你可以试试这个:

var string = function (base) { 
return {
add: function (added) {
base += added;
return string(this.toString());
},
toString: function() {
return base;
}
}
}

console.log(string("test ").add("this ").add("thing").toString());
// outputs "test this thing"

这将正确输出。

您还可以扩展 String.prototype 并添加 add 方法。

关于javascript - 链接对象时如何使用相同的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8247562/

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