可以用Java模拟Javascript风格的原型吗?
我想知道是否有可能用Java模拟Javascript原型。在Java中是否可以将变量列表与函数相关联?如果可能的话,我想创建一些类似于Javascript原型的东西 下面是一个示例(Javascript):可以用Java模拟Javascript风格的原型吗?,java,javascript,prototype,Java,Javascript,Prototype,我想知道是否有可能用Java模拟Javascript原型。在Java中是否可以将变量列表与函数相关联?如果可能的话,我想创建一些类似于Javascript原型的东西 下面是一个示例(Javascript): 在Java中有没有类似的方法?是的,这当然是可能的,并且在某些情况下非常有用 通常,您会执行以下操作: 创建一个包含属性映射的类。这将成为所有原型的“基本对象”类。K可能是字符串,V可能是对象 为属性创建getter和setter 可选地添加其他实用程序方法,例如,检查函数是否实现基本上意
在Java中有没有类似的方法?是的,这当然是可能的,并且在某些情况下非常有用 通常,您会执行以下操作:
- 创建一个包含属性映射的类。这将成为所有原型的“基本对象”类。K可能是字符串,V可能是对象
- 为属性创建getter和setter
- 可选地添加其他实用程序方法,例如,检查函数是否实现基本上意味着检查属性映射是否包含特定键
- 通过克隆另一个对象的属性映射或(更复杂的)保留对原始对象的引用来实现基于原型的继承
- 使用某种类型的函数对象允许在属性中存储任意代码
例如,我编写的开源游戏()对所有游戏中的对象都使用这种方法。Java中的函数(方法)不是一流的公民。不能传递它们或将属性/属性关联到它们。他们必须始终由一个班级护送。您需要一些基于类/对象的设计来实现它,但您的意图是什么?你想做什么?为什么?我使用Javascript中的函数原型来识别函数是否已实现,这样我就可以确定在任何给定时间可以实现哪些函数。(我现在意识到,在Java中,只需创建一个包含我正在使用的每个函数名的数组,就可以完全避免这个问题。)此外,方法注释对于这个目的可能很有用:您能提供一些基本的示例用法吗(我指的是源代码示例)?查看暴君源代码-例如,包含生成具有不同属性和特殊效果(功能对象)的许多不同药剂类型的代码。方法注释也可用于此目的(在某些情况下):
var s = doStuff.prototype;
s.isImplemented = false;
function doStuff(){
//this function has not yet been implemented
}
var s = functionIsImplemented.prototype;
s.isImplemented = true;
function functionIsImplemented(theFunction){
//this function returns true if the function has been identified as "implemented"
if(theFunction.prototype.isImplemented == true){
return true;
}
return false;
}
alert(functionIsImplemented(doStuff)); //this should print "false"
alert(functionIsImplemented(functionIsImplemented)); //this should print "true"