相关疑难解决方法(0)

逗号运算符是否会影响Javascript中的执行上下文?

var a = 1;
var b = {
  a : 2,
  c : function () {
    console.log(this.a);
  }
};

b.c(); // logs 2
(b.c)(); // logs 2
(0, b.c)(); // logs 1
Run Code Online (Sandbox Code Playgroud)

第一个是可以理解的,因为"this"指的是Object"b".但为什么第二个会记录相同的结果呢?我认为"this"应该指向全局执行上下文.第三个,似乎逗号运算符影响执行上下文.

javascript this

28
推荐指数
2
解决办法
892
查看次数

为什么任何 JavaScript 代码都想“切断绑定”?

使用一个的原因

(0, foo.fn)();
Run Code Online (Sandbox Code Playgroud)

切断绑定this将不再foo绑定到全局对象,而是绑定到全局对象。

但是,任何 JavaScript 代码(或 Google 的 JS 代码)都想削减绑定的原因是什么?(它是否是反模式?)

javascript

15
推荐指数
1
解决办法
425
查看次数

这个javascript语法是什么意思?(0,_parseKey2.default)(某事)

我在Webpack生成的libs中找到了这个符号,但我不明白它:

var a = (0, _parseKey2.default)(something)
Run Code Online (Sandbox Code Playgroud)

(0, _parseKey2.default)代表什么?我不记得在功能参数的其他地方括号之间看到那些昏迷分隔的表达式,所以也许我只是缺少一些简单的东西.

谢谢你的帮助.

javascript webpack

13
推荐指数
1
解决办法
850
查看次数

JavaScript语法(0,fn)(args)

只需检查Google的JavaScript代码,我就找到了这样的语法:

var myVar = function...;
(0, myVar)(args);
Run Code Online (Sandbox Code Playgroud)

你知道这个语法的含义吗?我找不到之间的差异 (0, myVar)(args);myVar(args);.

举一个确切的例子,我们有

_.x3 = function (a, b) {
    return new _.q3(20 * b.x + a.B.B.x, 20 * b.y + a.B.B.y)
};
Run Code Online (Sandbox Code Playgroud)

然后

this.ta = new _.s3((0, _.x3)(this.fa, this.B.B), 0);
Run Code Online (Sandbox Code Playgroud)

javascript

7
推荐指数
2
解决办法
1195
查看次数

为什么babel用_(0,...)()包装_sourceMapSupport.install()?

我注意到,巴贝尔 transpiled

import { install } from 'source-map-support';
install();
Run Code Online (Sandbox Code Playgroud)

var _sourceMapSupport = require('source-map-support');
(0, _sourceMapSupport.install)();
Run Code Online (Sandbox Code Playgroud)

为什么babel0在调用install函数时使用逗号运算符作为第一个表达式?

javascript babeljs

5
推荐指数
1
解决办法
166
查看次数

无法理解javascript语法

我正在阅读react-jsonschema-form的代码.我遇到了以下几行,我无法理解.

var formData = (0, _utils.getDefaultFormState)(schema, props.formData, definitions);
Run Code Online (Sandbox Code Playgroud)

第一个括号内的内容如何传递参数(schema,props.formData等)的函数?

javascript

5
推荐指数
1
解决办法
74
查看次数

在JS中调用(0,func)()的目的是什么?

我在Babel这个源代码生成的代码中遇到了这个问题.它似乎在某种程度上保护了一个必需的功能.

(0, _utilities.validateNextState)(nextDomainState, reducerName, action);
Run Code Online (Sandbox Code Playgroud)

我理解括号中的逗号语句如何丢弃0并返回validateNextState函数,但为什么不这样做:

_utilities.validateNextState(nextDomainState, reducerName, action);
Run Code Online (Sandbox Code Playgroud)

我的猜测是一种保护(如闭包保护范围,或者setTimeout使函数调用异步),但无法弄清楚它的用途是什么.

javascript

5
推荐指数
1
解决办法
103
查看次数

为什么人们要这样写js?

  var type = (0, _reactIs.isMemo)(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type; 
Run Code Online (Sandbox Code Playgroud)

(0, _reactIs.isMemo)真的让我很困惑。这个东西的意思是什么?

ps:我知道(0, _reactIs.isMemo)这个表达式的值是_reactIs.isMemo

javascript

3
推荐指数
1
解决办法
101
查看次数

在方法调用中使用逗号表达式是什么意思,比如`var proc = (0, _postcss2.default)();`

查看 cssnano 源代码,我遇到了这一行

var proc = (0, _postcss2.default)();

根据我的测试,它似乎与

var proc = _postcss2.default();

为什么 cssnanoproc使用第一种语法进行赋值?

javascript javascript-objects

2
推荐指数
1
解决办法
295
查看次数

标签 统计

javascript ×9

babeljs ×1

javascript-objects ×1

this ×1

webpack ×1