首页 > 解决方案 > Kyle Simpson 的 OLOO 模式如何处理未初始化的对象?

问题描述

假设从另一个 OLOO 问题中提取的下一个示例:

var Foo = {
    init: function(who) {
        this.initialized = true;
        this.me = who;
    },
    checkIfInitialized: function() {
        if(!this.initialized) throw new Error('Not initialized')
    },
    identify: function() {
        checkIfInitialized()
        return "I am " + this.me;
    },
    sayHi: function() {
        checkIfInitialized()
        return "Hi " + this.me;
    },
    sayGoodBye: function() {
        checkIfInitialized()
        return "Goodbye " + this.me;
    }
};

在这里,如果在调用函数之前对象未初始化,我想抛出错误或拒绝识别调用。但是,我不想在 Object 的每个公共例程中添加验证器。

如何在不重复该行为的情况下处理它?

标签: javascriptnode.jsobjectdesign-patternsjavascript-objects

解决方案


推荐阅读