Javascript Make函数返回一些值而不是上下文

Javascript Make函数返回一些值而不是上下文,javascript,Javascript,假设我有一个函数,比如 function a(){ return this;} a(); 这将返回类似于 我想让这个函数返回一些值,比如说'10'。但我不想改变函数中的任何内容。可能吗 为了返回一个值,我们可以这样做 function a(x){ return x;} a(10); 但是我不想这样更改我的函数。这是一个奇怪的问题,但是你可以调用一个函数,不管你想在什么范围下执行它。如果您希望范围是一个数字,那么就这样吧 这应该满足您的要求: function a() { return thi

假设我有一个函数,比如

function a(){ return this;} a();
这将返回类似于

我想让这个函数返回一些值,比如说'10'。但我不想改变函数中的任何内容。可能吗

为了返回一个值,我们可以这样做

function a(x){ return x;} a(10);

但是我不想这样更改我的函数。

这是一个奇怪的问题,但是你可以调用一个函数,不管你想在什么范围下执行它。如果您希望范围是一个数字,那么就这样吧

这应该满足您的要求:

function a() { return this; }
a.call(10)

这是一个奇怪的问题,但您可以使用希望在其下执行的任何范围调用函数。如果您希望范围是一个数字,那么就这样吧

这应该满足您的要求:

function a() { return this; }
a.call(10)

@Jiving的回答很好。我添加这个只是为了增加解决方案的范围

function a() { return this; }

var num = Number;
num.prototype.a = a;

var ten = num(10);
ten.a();

@Jiving的回答很好。我添加这个只是为了增加解决方案的范围

function a() { return this; }

var num = Number;
num.prototype.a = a;

var ten = num(10);
ten.a();

函数a(){return 10;}我不想从函数a()中删除“return this”{return 10;}我不想从es5以外的函数中删除“return this”。。。在es5中,返回的数字对象不是传递的原语对象。。。但是在es6中它会起作用是的,你会得到一个数字对象。但在大多数情况下,它的行为会像一个普通的原语。是的,这正是我想要的。感谢you@BKM我不确定你为什么要这么做,但不客气。实际上我的项目不需要这样做。我怀疑它到底能起什么作用。无论如何,谢谢你的快速回复,不在es5。。。在es5中,返回的数字对象不是传递的原语对象。。。但是在es6中它会起作用是的,你会得到一个数字对象。但在大多数情况下,它的行为会像一个普通的原语。是的,这正是我想要的。感谢you@BKM我不确定你为什么要这么做,但不客气。实际上我的项目不需要这样做。我怀疑它到底能起什么作用。无论如何,谢谢你的快速回复