一个"属性"可以称之为不使用括号的方法

时间:2016-06-08 13:52:20

标签: javascript chai

使用lib' chai',我可以这样做:

expect(display).to.be.true;

如果显示为false,则测试失败,如果显示为true,则可以正常工作。

我的问题是,lib chai如何知道" .true"财产已被使用?没有括号,它甚至不是一种方法!这个语法的名称是什么?我怎么能宣布类似的事情?

这个lib还有.false和.empty属性,可以使用为什么语法相同:

expect([]).to.be.empty;//OK
expect([1]).to.be.empty;//test fail
expect(false).to.be.false;//OK
expect(true).to.be.false;//test fail

1 个答案:

答案 0 :(得分:2)

对象可以有"getter" and "setter" properties。它们分别调用您在访问或更新时提供的功能。

var o = {
  get test() { console.log("foo!") }
}

o.test;

这是ECMAScript 5的一项功能,在现代实现中广泛使用。