ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码

javascript设计模式之解释器模式详解(5/23)

来源:网络整理     时间:2016-06-06     关键词:javascript设计模式

本篇文章主要介绍了"javascript设计模式之解释器模式详解",主要涉及到javascript设计模式方面的内容,对于Javascriptjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下: 神马是“解释器模式”?先翻开《GOF》看看Definition:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。...


void function () {
    var c = new Context();
    // 想要获取多个d元素的值,也就是如下表达式的值:“root/a/b/c”
    // 首先要构建解释器的抽象语法树
    var root = new ElementExpression('root');
    var aEle = new ElementExpression('a');
    var bEle = new ElementExpression('b');
    var cEle = new ElementTerminalExpression('c');

    // 组合
    root.addEle(aEle);
    aEle.addEle(bEle);
    bEle.addEle(cEle);

    console.log('c的值是 = ' + root.interpret(c));

}();

输出: c的值是 = 12345

然后我们再用上面代码获取单个元素的属性的值:

复制代码 代码如下:


 void function () {
        var c = new Context();
        // 想要获取d元素的id属性,也就是如下表达式的值:“a/b/c.name”
        // 这个时候c不是终结了,需要把c修改成ElementExpression
        var root = new ElementExpression('root');
        var aEle = new ElementExpression('a');
        var bEle = new ElementExpression('b');
        var cEle = new ElementExpression('c');
        var prop = new PropertyTerminalExpression('name');

        // 组合
        root.addEle(aEle);
        aEle.addEle(bEle);
        bEle.addEle(cEle);
        cEle.addEle(prop);

        console.log('c的属性name值是 = ' + root.interpret(c));

相关图片

相关文章