最近在对JScript进行面向对象的扩展,使得大家以后可以在JScript(TM)中定义类,并写出真正的面向对象的代码。
我对扩展了的JScript取了名字,叫OxScript,打算实现的features如下:
OxScript is an Object-Oriented extension for JavaScript.
The following features will be provided by OxScript:
1. class definition;
2. final class;
3. abstract class;
4. inheritance;
5. overriding;
6. abstract function;
7. polymorphism;
8. package;
9. property getter/setter;
10. reflection(readonly);
大体的Specification如下:
[Access Modifiers]
public, protected, private,
static, abstract, final, virtual
[Directives]
$include, $import,
$package, $class,
$field, $method, $property, $event
[Additional Keywords]
extend, implement,
public, protected, private, static,
get, set
[Additional Operators]
classof, raise
[Predefined Classes]
class Package extend Object {
public :
protected :
private :
}
class Class extend Object {
public :
protected :
private :
}
class Member extend Object {
public :
protected :
private :
}
class Field extend Member {
public :
protected :
private :
}
class Method extend Member {
public :
protected :
private :
}
class Property extend Member {
public :
protected :
private :
}
class Event extend Member {
public :
protected :
private :
}
[Class Hierarchy]
OxScript.Object
|--OxScript.Number
|--OxScript.String
|--OxScript.Boolean
|--OxScript.Date
|--OxScript.Array
|--OxScript.Enumerator
|--OxScript.Function
|--OxScript.RegExp
|--OxScript.VBArray
|--OxScript.Error
|--OxScript.ActiveXObject
|
|--OxScript.Reflection.Package
|--OxScript.Class
|--OxScript.Reflection.Member
|--OxScript.Reflection.Field
|--OxScript.Reflection.Method
|--OxScript.Reflection.Property
|--OxScript.Reflection.Event
下面是一段代码示例:













































































OxScript其实是巧妙了利用了JScript的灵活的语法和特性,对其进行了一层包装而已,所以不需要任何安装,只需要在页面中引用OxScript.js就可以享用模拟的面向对象编程了。另外OxScript还提供一个比较有用的特性就是可以反射出所类的定义信息,然后可以自动产生出类似VS中ObjectBrowser的参考窗体,罗列出当前页面中所用到的所有的类和它们的成员的定义信息,从而提供programming references来辅助脚本的编写。小弟目前正在全力的开发中(估计一个星期内就可以发布第一个版本了),先贴出设计思想和代码预览,供大家讨论和交流。请大家多提宝贵意见。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架