如何调用静态函数,如成员函数

问题描述:

我想澄清这个疑问,但可能有解决方案我不知道,所以请帮助我。通常在编写代码时,我们调用一个函数如何调用静态函数,如成员函数

function call(a){ 
    /*some task*/ 
} 

var a = "HELLO"; 
var data = call(a); 

所以通过值将函数call()内部处理和一定的价值回归data

但在调用一些内置的JavaScript功能,如toString()toLowerCase()的情况下,我们不会通过函数内部的值,而我们所说的一样a.toLowercase()功能。

这种类型的函数调用是如何在幕后工作的,还有什么方法可以像调用内置函数一样调用自定义函数吗?提前致谢。

+0

'的toString()'和'toLowerCase()'是物体本身的方法。 – Gendarme

+0

[查看对象方法](https://www.w3schools.com/js/js_object_methods.asp) –

+0

你正在寻找什么是类,也许是原型继承。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes – Strikegently

我认为可能的原因可能是这些功能绑定到字符串对象原型,这就是为什么你可以称它为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