0

次のコードから listInfo プロトタイプと logInfo オブジェクトを削除するにはどうすればよいでしょうか。

私の問題は、閉じ括弧を削除する方法が見つからないように見える listInfo プロトタイプにあります。それ以外はすべて簡単に見つけて削除できます。

var ePlug = (function (undefined) {
    var logInfo, logErrors, logWarnings, hasError, version;

    function ePlug(options) {
        this.version = "0.1 Alpha";
        this.logInfo = [];
        this.logErrors = [];
        this.logWarnings = [];

        this.logInfo.push('Setting options start.');
        options = options || {};

        this.validate(options.one, 'string', 'one provided is not valid.');
        this.validate(options.two, 'boolean', 'two provided is not valid.');

        if(this.hasError !== true) {
            options.one = typeof options.one === 'string' ? options.one : 'string';
            options.two = typeof options.two === 'boolean' ? options.two : true;

            this.logInfo.push('Setting options end.');
            this.options = options;
        }
        else {
            this.logErrors.push('Setting options error.');
        }
    }

    ePlug.prototype.listInfo = function () {
        return this.logg(this.logInfo);
    };

    ePlug.prototype.listErrors = function () {
        return this.logg(this.logErrors);
    };

    ePlug.prototype.listWarnings = function () {
        return this.logg(this.logWarnings);
    };

    ePlug.prototype.logg = function (what) {
        if(typeof window.console === 'undefined') {
           alert(what);
        }
        else {
           console.log(what);
        }
    };

    ePlug.prototype.init = function () {
        if(this.hasError !== true) {
            // start here
        }
    };

    return ePlug;
})();

var eOpt = (function () {
    function options() { return {}; }
    return options;
})();

eOpt.one = 'test';
eOpt.two = false;
var ePlug = new ePlug(eOpt);
ePlug.init();

以下のコードを削除できるようにしたい

ePlug.prototype.listInfo = function () {
    return this.logg(this.logInfo);
};

これまでのところ、最初の 2 行しか削除できません。

最後の行を削除する方法がわかりません};

4

1 に答える 1

2

GNU のコード:

sed '/ePlug.prototype.listInfo = function () {/, /};/d' file

$cat ファイル
var ePlug = (関数 (未定義) {
    var logInfo、logErrors、logWarnings、hasError、バージョン;

    関数 ePlug(オプション) {
        this.version = "0.1 アルファ";
        this.logInfo = [];
        this.logErrors = [];
        this.logWarnings = [];

        this.logInfo.push('設定オプション開始');
        オプション = オプション || {};

        this.validate(options.one, 'string', '提供されたものは無効です。');
        this.validate(options.two, 'boolean', '提供された2つは無効です.');

        if(this.hasError !== true) {
            options.one = typeof options.one === '文字列' ? options.one : '文字列';
            options.two = typeof options.two === 'ブール値' ? options.two: 真;

            this.logInfo.push('設定オプション終了');
            this.options = オプション;
        }
        そうしないと {
            this.logErrors.push('設定オプションエラー');
        }
    }

    ePlug.prototype.listInfo = 関数 () {
        this.logg(this.logInfo) を返します。
    };

    ePlug.prototype.listErrors = 関数 () {
        this.logg(this.logErrors) を返します。
    };

    ePlug.prototype.listWarnings = 関数 () {
        this.logg(this.logWarnings) を返します。
    };

    ePlug.prototype.logg = 関数 (何) {
        if(typeof window.console === '未定義') {
           アラート(何);
        }
        そうしないと {
           console.log(何);
        }
    };

    ePlug.prototype.init = 関数 () {
        if(this.hasError !== true) {
            // ここから始める
        }
    };

    ePlug を返します。
})();

var eOpt = (関数 () {
    関数オプション() {戻り値{}; }
    オプションを返します。
})();

eOpt.one = 'テスト';
eOpt.two = false;
var ePlug = 新しい ePlug(eOpt);
ePlug.init();

$sed '/ePlug.prototype.listInfo = 関数 () {/, /};/d' ファイル
var ePlug = (関数 (未定義) {
    var logInfo、logErrors、logWarnings、hasError、バージョン;

    関数 ePlug(オプション) {
        this.version = "0.1 アルファ";
        this.logInfo = [];
        this.logErrors = [];
        this.logWarnings = [];

        this.logInfo.push('設定オプション開始');
        オプション = オプション || {};

        this.validate(options.one, 'string', '提供されたものは無効です。');
        this.validate(options.two, 'boolean', '提供された2つは無効です.');

        if(this.hasError !== true) {
            options.one = typeof options.one === '文字列' ? options.one : '文字列';
            options.two = typeof options.two === 'ブール値' ? options.two: 真;

            this.logInfo.push('設定オプション終了');
            this.options = オプション;
        }
        そうしないと {
            this.logErrors.push('設定オプションエラー');
        }
    }


    ePlug.prototype.listErrors = 関数 () {
        this.logg(this.logErrors) を返します。
    };

    ePlug.prototype.listWarnings = 関数 () {
        this.logg(this.logWarnings) を返します。
    };

    ePlug.prototype.logg = 関数 (何) {
        if(typeof window.console === '未定義') {
           アラート(何);
        }
        そうしないと {
           console.log(何);
        }
    };

    ePlug.prototype.init = 関数 () {
        if(this.hasError !== true) {
            // ここから始める
        }
    };

    ePlug を返します。
})();

var eOpt = (関数 () {
    関数オプション() {戻り値{}; }
    オプションを返します。
})();

eOpt.one = 'テスト';
eOpt.two = false;
var ePlug = 新しい ePlug(eOpt);
ePlug.init();

BRE では中括弧{}は特殊文字ではありません。

于 2013-07-03T12:34:02.397 に答える