这是啥? (0, _classCallCheck3.default)(this, Person)

在babel文档里看到如下一段代码( https://www.babeljs.cn/docs/babel-plugin-t...

"use strict";

var _classCallCheck2 = require("@babel/runtime/helpers/classCallCheck");
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : { default: obj };
}

var Person = function Person() {
  (0, _classCallCheck3.default)(this, Person);
};

对这行代码(0, _classCallCheck3.default)(this, Person);感觉很疑惑。如果写成( _classCallCheck3.default)(this, Person);,我就当 _classCallCheck3.default 是一个函数名,后面传递了两参数。可是这里却多出一个 0 了,这个0是什么意思?这也不像是函数调用的写法呀

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
4年前 评论
zhaiduting (楼主) 4年前
讨论数量: 2
4年前 评论
zhaiduting (楼主) 4年前

敲了一段测试代码

window.test= '测试';
window.foo= {
    bar(){console.log(this.test)}
};

console.log(test, foo); //测试 {bar:f}

foo.bar.call(this); //测试
foo.bar();          //undefined
(0, foo.bar)();     //测试
(1, foo.bar)();     //测试
('?', foo.bar)();   //测试

果真如此:(0, foo.bar)() 相当于 foo.bar.call(GLOBAL_OBJECT)
第1个参数改成1或者任意字符也都行的,貌似只要能触发一次【逗号运算】即可
file

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!