如何像成员函数一样调用静态函数
How to call static functions like member functions
我想澄清一下这个疑惑,但可能有我不知道的解决方法,所以请帮助我。通常在编写代码时我们调用一个函数
function call(a){
/*some task*/
}
作为
var a = "HELLO";
var data = call(a);
所以传递值将在函数内部处理 call()
和 return 一些值到 data
。
但是在调用某些内置 JavaScript 函数的情况下,例如 toString()
、toLowerCase()
,我们不会在函数内部传递值,而是调用函数 a.toLowercase()
.
这种类型的函数调用在幕后是如何工作的,有没有什么方法可以像调用内置函数那样调用自定义函数?提前致谢。
我认为可能的原因可能是这些函数绑定到字符串对象原型,这就是为什么您可以将其称为 a.toLowerCase()
。
例如: String.prototype.toLowerCase()
我想如果您尝试向字符串对象的原型添加函数。您将能够以上述方式调用它。
例如 :
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");
以上示例来自Link:javascript: add method to string class
你实际上指的是方法,它与函数略有不同(无论如何,它们可以被想象成函数的 OOP 等价物)。基本上 javascript 中的每个基元(如 String、Number 等)都可以用作对象:
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”
我想澄清一下这个疑惑,但可能有我不知道的解决方法,所以请帮助我。通常在编写代码时我们调用一个函数
function call(a){
/*some task*/
}
作为
var a = "HELLO";
var data = call(a);
所以传递值将在函数内部处理 call()
和 return 一些值到 data
。
但是在调用某些内置 JavaScript 函数的情况下,例如 toString()
、toLowerCase()
,我们不会在函数内部传递值,而是调用函数 a.toLowercase()
.
这种类型的函数调用在幕后是如何工作的,有没有什么方法可以像调用内置函数那样调用自定义函数?提前致谢。
我认为可能的原因可能是这些函数绑定到字符串对象原型,这就是为什么您可以将其称为 a.toLowerCase()
。
例如: String.prototype.toLowerCase()
我想如果您尝试向字符串对象的原型添加函数。您将能够以上述方式调用它。
例如 :
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");
以上示例来自Link:javascript: add method to string class
你实际上指的是方法,它与函数略有不同(无论如何,它们可以被想象成函数的 OOP 等价物)。基本上 javascript 中的每个基元(如 String、Number 等)都可以用作对象:
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”