蝴蝶書里面在討論繼承時提到了三種方式,第一種是用偽類的方式,通過new關鍵字來生成新的對象從而繼承;第二種則是Object.create。這兩種都相對好理解。而作者提到的第三種,函數化模式,在方法的最后寫了這樣一段話:“如果對象的所有狀態都是私有的,那么該對象就成為一個“防偽(tamper-proof)”對象。該對象的屬性可以被替換或刪除,但該對象的完整性不會受到損害。如果我們用函數化的樣式創建一個對象,并且該對象的所有方法都不使用this或that,那么該對象就是持久性(durable)的。一個持久性對象就是一個簡單功能函數的集合。一個持久性的對象不會被入侵。防偽一個持久性的對象時,除非用方法授權,否則攻擊者不能訪問對象的內部狀態。請問狀態私有怎么理解,這段話具體想要表達怎樣的意思?
如何理解JavaScript語言精粹中的函數化模式
臨摹微笑
2018-09-10 08:23:12