javascript是否向所有函数添加原型方法?
有没有一种方法可以在不使用原型库的情况下向所有javascript函数添加方法 大致如下:javascript是否向所有函数添加原型方法?,javascript,Javascript,有没有一种方法可以在不使用原型库的情况下向所有javascript函数添加方法 大致如下: Function.prototype.methodName = function(){ return dowhateverto(this) }; 这是我到目前为止试过的,但不起作用。也许这也是个坏主意,如果是的话,你能告诉我为什么吗 如果是,我可以将其添加到我选择的一组函数中吗 比如: MyFunctions.prototype.methodName = function(){
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(){};
以加强良好实践…?嗯,首先修改基本对象的原型并不完全是一种好的样式。但我同意。