2016-06-08 35 views
0

隨着LIB「薛寶釵」的方法,我可以這樣做:一個「屬性」怎麼能叫喜歡它的不使用括號

expect(display).to.be.true; 

如果顯示是假的,測試失敗,如果顯示爲真, 這行得通。

我的問題是,lib chai如何知道「.true」屬性已被使用?沒有括號,它甚至不是一種方法!這個語法的名字是什麼?我怎樣才能宣佈類似的東西?

此lib中也有.FALSE和.empty財產,誰可以用,爲什麼同樣的syntaxe:

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 

回答

2

對象可以有"getter" and "setter" properties。這些分別調用您在訪問或更新時提供的功能。

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

 
o.test;

這是ECMAScript的5功能,並且是在現代實現廣泛應用。