字符串上的调用函数(Javascript)
如何直接对字符串调用函数字符串上的调用函数(Javascript),javascript,function,Javascript,Function,如何直接对字符串调用函数 var test = function(x){ console.log(x); }; test(); ** 上面的日志应该是“未定义的” 如果我尝试: "test".test(); 我得到: "error" "TypeError: \"test\".test is not a function. "error" "TypeError: example.test is not a function 但测试是一种功能。因此,即使我尝试: var example
var test = function(x){
console.log(x);
};
test();
**
上面的日志应该是“未定义的”
如果我尝试:
"test".test();
我得到:
"error"
"TypeError: \"test\".test is not a function.
"error"
"TypeError: example.test is not a function
但测试是一种功能。因此,即使我尝试:
var example = "test";
example.test();
我得到:
"error"
"TypeError: \"test\".test is not a function.
"error"
"TypeError: example.test is not a function
非常感谢您的帮助。是的,
test
是一个函数,但String.prototype.test
不是一个函数。该值是未定义的
,使用调用运算符调用未定义的
值会抛出一个类型错误是,测试
是一个函数,但字符串.prototype.test
不是一个函数。值是未定义的
,使用调用运算符调用未定义的
值会抛出一个类型错误
,问题有点不清楚,但是如果您试图将字符串作为参数传递给函数,那将是错误的
test("hello");
var example = "hello";
test(example);
这个问题有点不清楚,但是如果您试图将字符串作为参数传递给函数,那将是
test("hello");
var example = "hello";
test(example);
您必须首先使用
例如:
String.prototype.cleanSpaces = function() {
return this.replace(" ", '');
};
现在您可以调用“test”。cleanspace()
您必须首先使用
例如:
String.prototype.cleanSpaces = function() {
return this.replace(" ", '');
};
现在您可以调用“test”.cleanspace()
使用原型
String.prototype.test = function () {
console.log(this.toString());
}
'test'.test();
它将在控制台中输出测试
使用原型
String.prototype.test = function () {
console.log(this.toString());
}
'test'.test();
它将在console中输出test
以扩展其他答案,您创建了一个名为test()
的函数,但该函数不属于任何对象,也不属于任何字符串。您尚未为字符串定义名为test()
的函数,因此出现了错误
为此,您可以尝试以下操作:
String.prototype.test = function() {
console.log(this);
};
"hello".test();
阅读原型。本质上,javascript中的对象有属性和方法,它们也有原型的属性和方法。为了进一步扩展其他答案,您创建了一个名为test()
的函数,但该函数不属于任何对象,也不属于任何字符串。您尚未为字符串定义名为test()
的函数,因此出现了错误
为此,您可以尝试以下操作:
String.prototype.test = function() {
console.log(this);
};
"hello".test();
阅读原型。本质上,javascript中的对象有属性和方法,它们也有原型的属性和方法。这是一个函数,但它与任意字符串有什么联系?JS如何知道一个字符串确实有一个同名函数?要清楚:如果您试图将参数传递给用户定义的函数,请参阅Thilo的答案。如果您希望向字符串
对象添加一个方法,然后对字符串
类型值调用该方法,请参见Luke的回答。是的,测试(全局变量)是一个函数,但示例。测试
或测试。测试
(字符串属性)不是错误消息所述的函数。它是一个函数,但是它与任意字符串有什么联系呢?JS如何知道一个字符串确实有一个同名函数?要清楚:如果您试图将参数传递给用户定义的函数,请参阅Thilo的答案。如果您希望向字符串
对象添加一个方法,然后在字符串
类型值上调用该方法,请参见Luke的回答。是的,test
(全局变量)是一个函数,但示例。test
或“test”。test
(字符串属性)不是,正如您的错误消息所述。我非常清楚:他问如何调用原型函数或方法。对此不太确定。这可能只是关于如何使用参数调用函数的基本问题。看起来应该将x
参数设置为所讨论的字符串。在使用统一调用语法的语言中,a.test()
与test(a)
或testa
相同。我非常清楚:他问如何调用原型函数或方法。对此不太确定。这可能只是关于如何使用参数调用函数的基本问题。看起来应该将x
参数设置为所讨论的字符串。在使用统一调用语法的语言中,a.test()
与test(a)
或testa
.test()
是正确的,尽管我的理解是OP只是在玩弄函数。我可能不正确?我不认为你对OP的评估是错误的,但我只是指出了这一点,因为你说“不属于任何物体”谢谢。这正是我要找的。我试图寻找这个答案,但在不知道原型的情况下,很难找到我想要的。谢谢你的帮助。我只是想说,在那里定义的函数有点浮动,而不是说没有名为test的函数存在:).test()
是真的,尽管我的理解是OP只是在摆弄函数。我可能不正确?我不认为你对OP的评估是错误的,但我只是指出了这一点,因为你说“不属于任何物体”谢谢。这正是我要找的。我试图寻找这个答案,但在不知道原型的情况下,很难找到我想要的。谢谢你的帮助。我的意思只是,在那里定义的函数有点浮动,而不是说没有名为test的函数存在:)