通过在变量末尾添加它来执行直接运行的函数
Executing a function that runs directly by adding it at the end of the variable
大多数函数必须通过添加参数 运行 但在这种情况下我只想像这样工作:
let value = "test";
value.funcTest();
function funcTest(){
return "value replaced" + value;
}
而不是
let value = "test";
value = funcTest(value);
function funcTest(x){
return "value replaced" + x;
}
有办法解决这个问题吗?
给定
let value = "test";
value.funcTest();
只有将方法添加到 String.prototype
才有可能 - 这是 very bad idea,不应使用。
String.prototype.funcTest = function() {
return "value replaced" + this;
}
let value = "test";
console.log(value.funcTest());
如果您想在不使用单独标识符的函数调用的情况下将字符串和函数联系在一起,更好的方法是改用对象,并将两者都放在对象中。
const obj = {
value: "test",
funcTest() {
return "value replaced" + this.value;
}
}
console.log(obj.funcTest());
我不完全确定你要做什么,但也许使用对象会起作用:
let variable =
{
value: 'test',
funcTest: function()
{
return 'value is ' + this.value;
}
};
如果您不想添加括号,您也可以使用 getter:
let variable=
{
value: 'test',
get funcTest()
{
return 'value is ' + this.value;
}
};
这样你就可以调用 variable.funcTest
,它会做同样的事情。
大多数函数必须通过添加参数 运行 但在这种情况下我只想像这样工作:
let value = "test";
value.funcTest();
function funcTest(){
return "value replaced" + value;
}
而不是
let value = "test";
value = funcTest(value);
function funcTest(x){
return "value replaced" + x;
}
有办法解决这个问题吗?
给定
let value = "test";
value.funcTest();
只有将方法添加到 String.prototype
才有可能 - 这是 very bad idea,不应使用。
String.prototype.funcTest = function() {
return "value replaced" + this;
}
let value = "test";
console.log(value.funcTest());
如果您想在不使用单独标识符的函数调用的情况下将字符串和函数联系在一起,更好的方法是改用对象,并将两者都放在对象中。
const obj = {
value: "test",
funcTest() {
return "value replaced" + this.value;
}
}
console.log(obj.funcTest());
我不完全确定你要做什么,但也许使用对象会起作用:
let variable =
{
value: 'test',
funcTest: function()
{
return 'value is ' + this.value;
}
};
如果您不想添加括号,您也可以使用 getter:
let variable=
{
value: 'test',
get funcTest()
{
return 'value is ' + this.value;
}
};
这样你就可以调用 variable.funcTest
,它会做同样的事情。