Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何创建JS类/对象的多个实例?_Javascript - Fatal编程技术网

Javascript 如何创建JS类/对象的多个实例?

Javascript 如何创建JS类/对象的多个实例?,javascript,Javascript,我想用下面的代码为苹果创建多个实例。如何实现它。我不想更改对象定义样式 var apple = { type: "macintosh", color: "red", getInfo: function () { return this.color + ' ' + this.type + ' apple'; } } 提前谢谢。你可以用这个 function giveMeApple() { var apple = { type: "m

我想用下面的代码为苹果创建多个实例。如何实现它。我不想更改对象定义样式

var apple = {
    type: "macintosh",
    color: "red",
    getInfo: function () {
        return this.color + ' ' + this.type + ' apple';
    }
}
提前谢谢。

你可以用这个

function giveMeApple() {
    var apple = {
    type: "macintosh",
    color: "red",
    getInfo: function () {
        return this.color + ' ' + this.type + ' apple';
      }
    }

    return apple;
}

var apple1 = giveMeApple();
var apple2 = giveMeApple();

// Do something with apples 
你可以用这个

function giveMeApple() {
    var apple = {
    type: "macintosh",
    color: "red",
    getInfo: function () {
        return this.color + ' ' + this.type + ' apple';
      }
    }

    return apple;
}

var apple1 = giveMeApple();
var apple2 = giveMeApple();

// Do something with apples 

我建议使用构造函数创建实例:

function apple(type, color){
    this.type = type;
    this.color = color;
}

apple.prototype.getInfo = function(){
    return this.color + ' ' + this.type + ' apple';
};

var apple1 = new apple('mac', 'red');
apple1.getInfo();

我建议使用构造函数创建实例:

function apple(type, color){
    this.type = type;
    this.color = color;
}

apple.prototype.getInfo = function(){
    return this.color + ' ' + this.type + ' apple';
};

var apple1 = new apple('mac', 'red');
apple1.getInfo();

通常,在这种情况下,构造函数会派上用场。包含这些。但既然你不想改变你的目标:这里你有另一个答案

除此之外,您还可以克隆对象。没有本机函数可以这样做,但是自己编写一个很容易

function cloneObject(obj) {
    var obj2 = {},
        i;

    // Take every property of obj
    for (i in obj) {
        if (obj.hasOwnProperty(i)) {

            // And give obj2 the same property with the same value
            obj2[i] = obj[i];
        }
    }
}

apple2 = cloneObject(apple);

通常,在这种情况下,构造函数会派上用场。包含这些。但既然你不想改变你的目标:这里你有另一个答案

除此之外,您还可以克隆对象。没有本机函数可以这样做,但是自己编写一个很容易

function cloneObject(obj) {
    var obj2 = {},
        i;

    // Take every property of obj
    for (i in obj) {
        if (obj.hasOwnProperty(i)) {

            // And give obj2 the same property with the same value
            obj2[i] = obj[i];
        }
    }
}

apple2 = cloneObject(apple);
您可以使用:

create()方法使用指定的 原型对象和属性

如果您需要支持您可以使用:

var Apple = function () {

            var AppleType = null;
            var AppleColor = null;
            var self = this;

            var OutPutAppleInfo = function () {
                var String = 'My Apple is ' + AppleType + ' And It Is ' + AppleColor + ' In Color.';
                console.log(String);
            }

            return {

                SetAppleColor: function (obj) {
                    AppleColor = obj;
                },
                SetAppleType: function (obj) {
                    AppleType = obj;
                },
                PrintAppleInfo: function () {
                    OutPutAppleInfo();
                }
            };
        }


        function Init()
        {
            var Apple1 = new Apple();
            var Apple2 = new Apple();
            var Apple3 = new Apple();

            Apple1.SetAppleColor('Yellow');
            Apple2.SetAppleColor('Green');
            Apple3.SetAppleColor('Red');

            Apple1.SetAppleType('macintosh');
            Apple2.SetAppleType('Food');
            Apple3.SetAppleType('Model');

            console.log('Apple1');
            Apple1.PrintAppleInfo();
            console.log('Apple2');
            Apple2.PrintAppleInfo();
            console.log('Apple3');
            Apple3.PrintAppleInfo();

        }
create()方法使用指定的 原型对象和属性


如果您需要支持在这种情况下,您需要克隆您的对象。在这种情况下,您需要克隆您的对象。或者
var apple2=$.extend({},apple)如果他正在使用jQuery;)或者
var apple2=$.extend({},apple)如果他正在使用jQuery;)如何执行giveMeApple();从变量?对于ex-var cloneGenerator=giveMeApple();apple1=克隆发生器;apple2=克隆发生器@正如我在代码中提到的,您需要多次调用giveMeApply方法来创建新对象。giveMeApply不是一个克隆生成器,而是返回一个apple对象。是的,这个很有效。但我需要一些东西,比如cloneGenerator变量或工厂,我将向其他js库公开它们。您需要理解多次将一个变量分配给另一个变量不会为您创建新对象。在任何情况下,您至少需要调用一个方法。您可以编写cloneGenerator类并在该类中定义一个方法getApple,然后将cloneGenerator的对象传递给其他库;var newApple=cloneGenerator()或查看我的答案,寻找另一种“克隆”方法。如何执行giveMeApple();从变量?对于ex-var cloneGenerator=giveMeApple();apple1=克隆发生器;apple2=克隆发生器@正如我在代码中提到的,您需要多次调用giveMeApply方法来创建新对象。giveMeApply不是一个克隆生成器,而是返回一个apple对象。是的,这个很有效。但我需要一些东西,比如cloneGenerator变量或工厂,我将向其他js库公开它们。您需要理解多次将一个变量分配给另一个变量不会为您创建新对象。在任何情况下,您至少需要调用一个方法。您可以编写cloneGenerator类并在该类中定义一个方法getApple,然后将cloneGenerator的对象传递给其他库;var newApple=cloneGenerator()或查看我的答案,寻找另一种“克隆”方法。
var Apple = function () {

            var AppleType = null;
            var AppleColor = null;
            var self = this;

            var OutPutAppleInfo = function () {
                var String = 'My Apple is ' + AppleType + ' And It Is ' + AppleColor + ' In Color.';
                console.log(String);
            }

            return {

                SetAppleColor: function (obj) {
                    AppleColor = obj;
                },
                SetAppleType: function (obj) {
                    AppleType = obj;
                },
                PrintAppleInfo: function () {
                    OutPutAppleInfo();
                }
            };
        }


        function Init()
        {
            var Apple1 = new Apple();
            var Apple2 = new Apple();
            var Apple3 = new Apple();

            Apple1.SetAppleColor('Yellow');
            Apple2.SetAppleColor('Green');
            Apple3.SetAppleColor('Red');

            Apple1.SetAppleType('macintosh');
            Apple2.SetAppleType('Food');
            Apple3.SetAppleType('Model');

            console.log('Apple1');
            Apple1.PrintAppleInfo();
            console.log('Apple2');
            Apple2.PrintAppleInfo();
            console.log('Apple3');
            Apple3.PrintAppleInfo();

        }