如何调用静态函数,如成员函数
问题描述:
我想澄清这个疑问,但可能有解决方案我不知道,所以请帮助我。通常在编写代码时,我们调用一个函数如何调用静态函数,如成员函数
function call(a){
/*some task*/
}
为
var a = "HELLO";
var data = call(a);
所以通过值将函数call()
内部处理和一定的价值回归data
。
但在调用一些内置的JavaScript功能,如toString()
,toLowerCase()
的情况下,我们不会通过函数内部的值,而我们所说的一样a.toLowercase()
功能。
这种类型的函数调用是如何在幕后工作的,还有什么方法可以像调用内置函数一样调用自定义函数吗?提前致谢。
答
我认为可能的原因可能是这些功能绑定到字符串对象原型,这就是为什么你可以称它为a.toLowerCase()
。
E.g: String.prototype.toLowerCase()
我想如果你尝试添加功能,String对象的原型。你将能够以上述方式称呼它。
例如,:
String.prototype.distance = function (char) {
var index = this.indexOf(char);
if (index === -1) {
alert(char + " does not appear in " + this);
} else {
alert(char + " is " + (this.length - index) + " characters from the end of the string!");
}
};
"Hello".distance("H");
上面的例子是从连接:javascript: add method to string class
答
你实际上指的方法,该方法从功能略有不同(它们可以被想象为一个面向对象的等效的功能,无论如何)。基本上,javascript中的每个图元(如字符串,数字等)都可以用作对象:
var foo = "Bar"; // Bar
var baz = foo.toLowerCase() // bar
foo这里是一个字符串。当使用toLowerCase方法时,javascript实际上将字符串包装在一个String对象中,以使其方法可供使用。
// behind the scenes
var magicTemporaryFoo = new String(foo);
var magicTemporaryFooMethodResult = magicTemporaryFoo.toLowerCase();
如果你想开始使用对象和他们的方法,我建议你一个非常好读,“You don't know Js - This & Object Prototypes”
'的toString()'和'toLowerCase()'是物体本身的方法。 – Gendarme
[查看对象方法](https://www.w3schools.com/js/js_object_methods.asp) –
你正在寻找什么是类,也许是原型继承。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes – Strikegently