javascript是否向所有函数添加原型方法?

javascript是否向所有函数添加原型方法?,javascript,Javascript,有没有一种方法可以在不使用原型库的情况下向所有javascript函数添加方法 大致如下: Function.prototype.methodName = function(){ return dowhateverto(this) }; 这是我到目前为止试过的,但不起作用。也许这也是个坏主意,如果是的话,你能告诉我为什么吗 如果是,我可以将其添加到我选择的一组函数中吗 比如: MyFunctions.prototype.methodName = function(){

有没有一种方法可以在不使用原型库的情况下向所有javascript函数添加方法

大致如下:

Function.prototype.methodName = function(){ 


  return dowhateverto(this) 

 };
这是我到目前为止试过的,但不起作用。也许这也是个坏主意,如果是的话,你能告诉我为什么吗

如果是,我可以将其添加到我选择的一组函数中吗

比如:

MyFunctions.prototype.methodName = function(){ 


  return dowhateverto(this) 

 };
其中MyFunctions是一个函数名数组

谢谢

功能一(){
function one(){
    alert(1);
}
function two(){
    alert(2);
}

var myFunctionNames = ["one", "two"];

for(var i=0; i<myFunctionNames.length; i++) {
    // reference the window object, 
    // since the functions 'one' and 'two are in global scope
    Function.prototype[myFunctionNames[i]] = window[myFunctionNames[i]];
}


function foo(){}

foo.two(); // will alert 2
警报(1); } 函数二(){ 警报(2); } var myFunctionNames=[“一”、“二”];
对于(var i=0;iSure)。函数是对象:

var foo = function() {};

Function.prototype.bar = function() {
  alert("bar");
};

foo.bar();

将提醒“bar”

更改JS内置对象会给您带来一些惊喜。

如果添加外部库或更改其中一个库的版本,您永远无法确定它们是否会覆盖您的扩展。

请尝试Object.prototype:

Object.prototype.methodName = function(){ 

  return dowhateverto(this) 
};
但也要注意扩展本机对象并不总是一个好主意的警告


在Javascript中,Function.prototype不能真正可靠地操作;它不是一个真正的对象,因为Function()构造函数需要返回函数,而不是对象。但是,您也不能将其视为普通函数。当您尝试访问其“属性”时,其行为可能未定义,并且在不同浏览器之间有所不同。另请参见。

扩展内置JavaScript对象是一种错误的做法。此代码段假定
foo
已声明为prev以前,或者
foo
是一个隐含的全局(糟糕!)。也许可以将声明语句更改为
var foo=function(){};
以加强良好实践…?嗯,首先修改基本对象的原型并不完全是一种好的样式。但我同意。