Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何正确映射函数构造函数?_Javascript - Fatal编程技术网

Javascript 如何正确映射函数构造函数?

Javascript 如何正确映射函数构造函数?,javascript,Javascript,Me和Smurfette正在将本机函数映射到我们称之为smurfy的新名称空间 SMURF 为此,我们通过在正确的上下文中从with调用函数来确保并映射正确的值。有很多方法可以做到这一点,但这只是其中之一 比如说, SMURF.getComputedStyle = function(){ return win.getComputedStyle.apply(win, arguments); }; 然而,对于OO风格的函数和对象,这将如何实现呢?特别是, SMURF.FormData = w

Me和Smurfette正在将本机函数映射到我们称之为smurfy的新名称空间

SMURF
为此,我们通过在正确的上下文中从with调用函数来确保并映射正确的值。有很多方法可以做到这一点,但这只是其中之一

比如说,

SMURF.getComputedStyle = function(){
  return win.getComputedStyle.apply(win, arguments);
};
然而,对于OO风格的函数和对象,这将如何实现呢?特别是,

SMURF.FormData = win.FormData;
这可以用同样的方式吗

调用机制是不同的,这就是为什么我们要问

new SMURF.FormData();
相对于

SMURF.getComputedStyle();
这是一本书

我猜隐含的问题是,
apply
可以用于函数构造函数吗

澄清:


与IE9之前的版本无关。对于作为窗口对象的方法实现的非泛型方法,您可以使用
。bind
,例如:

SMURF.setTimeout = setTimeout.bind(window);
如果该方法是泛型的或构造函数,则只需执行以下操作

SMURF.x = window.x
e、 g

会很好用的


请注意,在IE8
中,call
(因此也包括任何
.bind
垫片)无法正确更改主机对象的上下文。

请删除所有这些smurf胡言乱语(从技术上讲,这是商标侵权,而且是错误的)。更严肃地说,你的问题令人困惑。请尝试重写它,并包括你预期的结果。@smurfbrainy cool trolling,与其思考,不如尝试一下(或者,发展对语言的理解)
SMURF.FormData = FormData;