为所有类定义全局方法

时间:2014-09-04 13:57:32

标签: javascript class methods global

有没有办法为所有类定义全局方法?

使用代码更容易描述...

Class.myMethod(){}

var Foo = function(){}
var Bar = function(){}

Foo.myMethod();
Bar.myMethod();

我知道,这很奇怪,但我需要它。

如果可能,我如何在方法代码中获取类变量:

Class.myMethod(){
    var anything; //anything should contains current class.
}

var Foo = function(){}
var Bar = function(){}

Foo.myMethod(); // anything should be Foo
Bar.myMethod(); // anything should be Bar

1 个答案:

答案 0 :(得分:0)

Javascript中没有“类”。但是,FooBar是构造函数,即它们是函数,并且继承自Function .prototype object。所以你可以做到

Function.prototype.myMethod = function(){
    var anything = this; // refers to the current constructor function
    console.log(anything.name); // for example
}

function Foo(){}
function Bar(){}

Foo.myMethod(); // "Foo"
Bar.myMethod(); // "Bar"