如何在javascript中制作"点功能"

Oli*_* Ni 17 javascript function

我正在尝试定义一个"点函数",其中没有参数,但.在它之前有一个和一个字符串或数字:

.toUpperCase().
toLowerCase().
indexOf
().
charAt().substring()

你这样做2..toString,不是toString(2).

你如何定义其中之一?

为什么当我输入4..toString()它返回function toString() {[native code]}

p.s*_*w.g 15

我强烈建议您不要尝试替换任何内置方法,但是,您可以随意定义自己的方法.

您可以通过将方法附加到NumberString键入原型来完成此操作:

Number.prototype.foo = function(n) { return this * n; };
String.prototype.bar = function(n) { return this.length * n; };

alert(4..foo(2));  // 8
alert("4".bar(2)); // 2
Run Code Online (Sandbox Code Playgroud)

进一步阅读


Pau*_*per 13

定义"点函数"很容易.以下是如何在单个对象上定义它的方法.

var a = {}, or a = function() {}, or a = [], etc.

a.dotFunction = function() { return 'hi'; }

console.log(a.dotFunction());
Run Code Online (Sandbox Code Playgroud)

如果要在"类"的所有实例上定义它,请使用prototype.

function someClass() {
}

someClass.prototype.dotFunction = function() { return 'hi'; };

console.log(new someClass().dotFunction());
Run Code Online (Sandbox Code Playgroud)

您甚至可以在内置类型上执行此操作(有些类似Prototype.js,请执行此操作,但大多数建议使用它).

Number.prototype.dotFunction = function() { return 'hi'; };

console.log((0).dotFunction()); 
Run Code Online (Sandbox Code Playgroud)