什么时候Object.assign返回false

时间:2019-05-06 05:00:32

标签: javascript object ecmascript-6

以下代码来自graphql-yoga软件包中的index.js文件。

有人可以在什么情况下向我解释“ Object.assign”将返回false并触发将匿名函数分配给变量的情况吗?

"use strict";
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};

在我看来,Object.assign将始终返回true,因为“ assign”是Object的内置方法。

var test  = Object.assign;
if(test) console.log("it is true")

结果是按预期将“ It true”打印到控制台上

2 个答案:

答案 0 :(得分:2)

Object.assign在ES5中不可用,它是在ES6中引入的。因此,我假设上面的代码是以与ES5兼容的方式编写的。

答案 1 :(得分:1)

唯一的情况是Object.assign不存在-例如在ES5环境中。在那种情况下,因为您不会尝试调用 undefined,所以不会导致错误,而是会传递给下一个函数(因为undefined是虚假的。)