4

我正在考虑的用例是创建一个绝望的以自我Null为中心的合并。

此代码有效,但需要对相关Null问题进行明确检查:

const Null = new Proxy({}, {get: () => Null});

let data = Null;

console.log(data.a.b.c.d !== Null ? "Has value" : "Is Null");

我希望能够省略显式检查并简单地做

console.log(data.a.b.c.d ? "Has value" : "Is Null");

但这不起作用,因为 myNull是一个对象,因此被视为真实。

规范似乎表明这是不可能的,但是 javascript 是一个如此奇怪的生态系统,我希望有人能够提出一个可能的解决方案。

(另外请不要争论这种类型的优点Null,我知道这是一个潜在的有争议的问题,我完全感兴趣的是它是否可以完成,而不是是否应该完成。)

4

1 回答 1

2

你不能。对象引用永远不会“虚假”。您可以添加valueOf()toString()在调用时返回错误值的方法,但如果测试的所有内容都是一个不会有任何好处的引用。

于 2017-01-16T02:54:56.857 回答