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();
}