一个经典的链式语法计算器用起来会像是这样:
FluentCalculator.one.plus.two // 1 + 2 = 3 FluentCalculator.one.plus.two.plus.three.minus.one.minus.two.minus.four // -1 FluentCalculator.one.plus.ten - 10 // 1 + 10 - 10 = 1
如果异常地调用,就会返回undefined:
FluentCalculator.one.one // undefined,因为值不能调用值 FluentCalculator.one.plus.plus // undefined,操作不能连续调用
对于这个问题,我们得确定一个思路:有状态在各个调用间传递,而且是两种状态。
当值(num)调用结束时,返回的是操作状态对象(OprStatus)。
当操作(opr)调用结束时,返回的是值状态对象(NumStatus)。
一、系统设置:用Dreamweaver等网页设计软件在代码视图下打开【dddingdan/config.php】系统设置文件,按注释说明进行系统设置。 二、系统使用:WFPHP在线订单系统是无台后的,不用数据库,也不用安装,解压源码包后,先进行系统设置,然后把整个【dddingdan】文件夹上传到服务器。在网页中要插入订单系统的位置,插入系统调用代码: 注意:id=01就表示使用样式01,如果要使
立即学习“Java免费学习笔记(深入)”;
也就是说,这两种状态是交替的,如果没有交替,那就是异常地调用,就会返回undefined。
"use strict";
var num = ["zero","one","two","three","four","five","six","seven","eight","nine","ten"];
var oprs = {plus : "+",minus : "-",times : "*",pidedBy : "/"};
var Magic = {};
//状态对象,父对象
function Status(value,opr){
//当前运算结果
this.value = value;
//当前操作符
this.opr = opr;
}
//值状态对象,继承状态对象
function NumStatus(value,opr){
Status.call(this,value,opr);
}
//操作状态对象,继承状态对象
function OprStatus(value,opr){
Status.call(this,value,opr);
}
//给值状态对象原型上绑定方法
for(let i=0;i










