Javascript-通用对象函数

Javascript-通用对象函数,javascript,function,object,methods,Javascript,Function,Object,Methods,好的,我的问题是如何使用构造函数模式在Javascript对象内部设置一个通用函数,该模式将对象实例的数据作为参数 例如: function ObjTest() = { this.obA = 0; this.obA_Inc = 1; this.obA_Max = 10; this.Up_Value = function(ob, obI, obM) { if(ob <= obM) { ob += obI;

好的,我的问题是如何使用构造函数模式在Javascript对象内部设置一个通用函数,该模式将对象实例的数据作为参数

例如:

function ObjTest() = {
    this.obA = 0;
    this.obA_Inc = 1;
    this.obA_Max = 10;

    this.Up_Value = function(ob, obI, obM) {
        if(ob <= obM) {
            ob += obI;

            if(ob > obM) {
                ob = obM;
            }
        }
    }
}

var obj = new ObjTest();
obj.Up_Value(obj.obA, obj.obA_Inc, obj.obA_Max)
函数ObjTest()={
此值为0.obA=0;
this.obA_Inc=1;
此.obA_Max=10;
this.Up_值=函数(ob、obI、obM){
如果(ob obM){
ob=obM;
}
}
}
}
var obj=新的ObjTest();
obj.Up_值(obj.obA、obj.obA_公司、obj.obA_最大值)

如果有更好的方法来处理Javascript对象,这将允许这样的实例,我很乐意听到这种模式。

你谈论这些“数据集”的方式,这让我尖叫对象

不要使用前缀或枚举属性来表示它们属于一起。使用适当的对象或数组。在本例中,类似于
this.objA={value:0,inc:1,max:10}

如果这个函数总是在这些对象中的一个上运行,并且似乎与
ObjTest
没有任何其他关系,那么它可能不是
ObjTest
的方法,而是这些对象的方法。这样会更好

//既然这些对象有逻辑,我们就使用一个类
类ValueObj{
建造商(价值公司,最大值){
这个值=值;
this.inc=inc;
this.max=max;
}
Up_值(){
this.value=Math.min(this.value+this.inc,this.max);
}
}
函数ObjTest(){
this.objA=新值obj(0,1,10);
this.objB=新值obj(0,2,15);
}
var obj=新的ObjTest();
//既然你调用了对象本身的方法,
//您不需要向函数传递任何内容
log(“before”,JSON.stringify(obj,null,2));
obj.objA.Up_值();
log(“after”,JSON.stringify(obj,null,2))

作为控制台包装{top:0;max height:100%!important}
如果它们已经在对象上,为什么要将它们作为参数<代码>如果(this.obA
等…我第二个@Ryan,我正要写同样的。。。这没有什么意义。旁注:
ob=Math.min(ob+obI,obM)
总结了函数中的逻辑。我将在函数本身之外创建对象的实例。其中将包含多个数据段,不仅是obA,还有obB、obC等。我想要一个通用函数,我可以传递我正在为特定对象处理的数据集,并在每个数据集上执行相同的功能,而不必为每个数据集全部写出来。这只是一个简单的例子来说明我正在尝试做什么。好吧,所以我尝试使用类,但它不断给我一个错误,第一个引号说“;”预期。我看过一些关于JS的课堂教程,它们都说了同样的话,并且给出了同样的错误。。。。我错过了什么?@JoshC。继续学习@JoshC。不,JS没有这样的类。这只是其原型继承模型之上的语法糖(看起来更干净)。我已将代码块更改为可运行的代码段。但是要告诉您为什么会出现错误,您必须发布引发此错误的代码。我得到错误的代码是:类obj{}错误显示在第一个括号中,表示“;”预期为。即使我添加了一个构造函数或其他任何东西,它仍然声明了这一点。但没关系,我只是把你说的转换成构造函数模式。现在一切都好了。