`
jindw
  • 浏览: 508815 次
  • 性别: Icon_minigender_1
  • 来自: 初到北京
社区版块
存档分类
最新评论

决定对JSEL属性计算做一点修改

    博客分类:
  • Java
F# 
阅读更多
目前的JSEL表达式计算过程中,有一点与ECMA差别比较明显:没有中间值对象(8.7 The Reference Type )

当能,这点区别在现实中表现的机会微乎其微。

触发我做这个修改的事情是:
我想通过JSEL做一个通用的命令行解析程序。
想用他做到像OGNL那样,同时实现表达式运算和表达式赋值。


要完成这一点,我需做的事情是:
所有属性运算,都先创建一个零时对象。
每次参数传入计算器前,都做一次检查,如发现中间对象,运算之。


下午简单实现一下并测试性能:
t1:8725026039
t2:8820022724

性能损失很小,决定动手了。
分享到:
评论
2 楼 jindw 2009-02-04  
reference type是一种内部类型,说是为了解说也可以。
我这次修改就是打算实现这种内部类型。
同事,允许暴露这种类型来完成其他功能。
1 楼 hax 2009-02-04  
不太明白你的意思啊。


ECMAScript是没有reference type的(除非是host环境提供),规范中的ref type只是为了解说。

如果有ref type,就会允许对一个表达式赋值(若此表达式返回一个ref type),比如

f() = 1

这个表达式通常会扔出syntax error,但是如果允许f()返回一个ref type,则这种赋值是可以成立的。

相关推荐

    vue计算属性get和set用法示例

    这使得在模板中可以使用基于其他数据属性计算出的值,而不需要在模板内部编写复杂的逻辑表达式。 接下来,我们来看一下setter函数的作用。如果你希望对计算属性`b`进行赋值操作时能够影响到依赖的其他数据属性,...

    Vue.js每天必学之计算属性computed与$watch

    你可以在模板中像绑定普通属性一样绑定计算属性,并且在控制台中修改`vm.a`的值后,`vm.b`也会相应地更新。 另外,计算属性可以通过定义一个getter函数来创建,但也可以定义一个setter函数,使得在赋值给计算属性时...

    vue计算属性computed的使用方法示例

    Vue.js 是一个流行的前端框架,用于构建用户界面。在 Vue 中,`computed` 属性是一个非常重要的特性,它用于创建基于其他数据动态计算得到的新属性。这些计算属性不会直接存储在 `data` 对象中,而是由 Vue 自动管理...

    vue计算属性+vue中class与style绑定(推荐)

    Vue.js 是一款流行的前端框架,它提供了一套优雅的方式来构建用户界面。在Vue中,有几种关键特性用于增强模板的功能性和可维护性,包括计算属性(Computed Properties)和指令(Directives)。本篇文章将深入探讨Vue...

    详解Vue之计算属性

    setter的使用场景通常较少,但当需要控制计算属性的修改时,它可以派上用场。 ```javascript computed: { myComputed: { get() { return this.someData; }, set(value) { this.someData = value; } } } ```...

    解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题

    通过复制element-ui中el-select组件的源码,并做少量修改,给tag添加一个可控制的closable属性,从而实现更加灵活的控制。这种方法虽然灵活,但会增加开发和维护的成本,尤其是当element-ui版本更新时,需要重新...

    校园招聘计算机岗位的vue面试题及答案.pdf

    - **计算属性(computed)**:当依赖的数据发生变化时,计算属性会自动重新计算其结果,然后更新到视图。这是优化性能的一种方式,因为只有当依赖项改变时才会重新计算。 - **侦听器(watch)**:与计算属性不同,...

    vue实现商品加减计算总价的实例代码

    在Vue.js中实现商品加减计算总价的功能是一个常见的电商应用需求。这个实例代码演示了如何在用户选择商品并调整数量时动态计算总价。下面我们将详细解释这个实例中的关键点。 首先,HTML结构是整个功能的基础。`...

    vue.min.js

    在HTML中使用Vue,通常会在页面头部引入`vue.min.js`,然后通过`new Vue()`初始化一个Vue实例,并设置它的el属性来指定Vue接管的DOM元素。之后,你可以定义数据、方法和生命周期钩子等,构建你的应用程序。 总的来...

    100道Vue.js 面试题(含答案).pdf

    Vue.js的计算属性computed和侦听器watch也经常出现在面试题中。computed属性可以根据依赖自动重新计算,而watch则用于观察和响应Vue实例上的数据变动。 最后,Vue.js的编译器complier是实现模板解析的核心部分,它...

    关于解决ElementUi中select框在页面滚动时el-option超出元素区域的问题+ cascader滚动超出问题

    在Vue.js开发中,ElementUI是一个非常流行的前端组件库,它提供了丰富的UI组件,如Select和Cascader,用于构建用户界面。然而,在实际使用过程中,可能会遇到一些问题,比如Select下拉选项(el-option)在页面滚动时...

    js Table相同行合并,数量汇总

    这可能涉及修改HTML元素的属性,如`innerHTML`,或者创建新的`<tr>`和`<td>`元素。 在提供的文件中,`Table相同行合并,数量汇总.html`很可能是实现这一功能的示例代码,而`jquery-1.8.3.min.js`是jQuery库的引用,...

    iview.min.js下载

    6. **Vue.js 兼容性**:iView 是基于 Vue.js 2.x 构建的,兼容 Vue.js 的特性,如计算属性、侦听器、指令等,可以无缝集成到 Vue 项目中。 7. **高性能**:由于采用了 Vue.js 的虚拟 DOM 和组件化思想,iView 在保持...

    Vue.js 中文 教程

    Vue还支持计算属性(computed properties),它们基于其他数据进行计算,并且在依赖数据变化时自动更新。例如: ```javascript computed: { reversedMessage() { return this.message.split('').reverse().join('...

    Backbone.js Patterns and Best Practices

    Underscore.js 是一个实用工具库,提供了一系列功能强大的函数,可以简化对数组、集合的操作。它经常被 Backbone.js 应用程序用来编写模板和实现自定义逻辑。 **重用代码:扩展** 通过继承和混合来重用代码是一种...

    vue2+vue3学习笔记

    计算属性和监测属性的区别是,计算属性是根据依赖的数据动态计算的,而监测属性是根据依赖的数据监测的变化。计算属性和监测属性可以实现列表过滤。 v-model v-model 是一种修饰符,用于收集数据。可以在表单类或...

    js框架Jquery知识讲解

    - EL(Expression Language)表达式常见于Java Web开发中的JSP,用于取值和表达计算;而jQuery函数是JavaScript库,用于DOM操作和页面交互。 ### 二、选择器 1. **什么是选择器** - 选择器是jQuery中用来选取DOM...

    vue.js利用Object.defineProperty实现双向绑定

    Vue.js框架之所以强大,很大程度上是因为它对这个方法的巧妙运用,以实现数据驱动视图更新和视图驱动数据变化(双向绑定)的效果。接下来,我们将深入探讨Object.defineProperty方法的工作机制,以及它是如何在Vue....

    vue 修改 data 数据问题并实时显示的方法

    然而,在某些情况下,直接修改`data`中的属性可能不会触发视图的更新。本篇文章将深入探讨如何正确地修改Vue实例中的`data`数据,并确保这些更改能在界面上实时显示。 首先,我们需要理解Vue实例化过程。当你创建一...

    vue基础详解,从0到1手把手带你进入VUE编程基础的时代

    计算属性是 Vue 提供的一种更高效、更易于理解和维护的方式,用于计算出依赖于其他数据的衍生数据。当依赖的数据发生变化时,计算属性会自动更新,而无需手动触发。 **示例**: ```javascript let app6 = new Vue({...

Global site tag (gtag.js) - Google Analytics