用于填充对象的JavaScript类
我试图通过使用JavaScript类来填充对象。我甚至不确定我是否做得正确,我对JavaScript OOP非常陌生用于填充对象的JavaScript类,javascript,Javascript,我试图通过使用JavaScript类来填充对象。我甚至不确定我是否做得正确,我对JavaScript OOP非常陌生 var ImagesViewModel = {}; // Global object function ImagesClass() { this.addImage = function (iUrl) { ImagesViewModel.push({ "ImageUrl": iUrl }) //< Error is here } }
var ImagesViewModel = {}; // Global object
function ImagesClass() {
this.addImage = function (iUrl) {
ImagesViewModel.push({ "ImageUrl": iUrl }) //< Error is here
}
}
var k = new ImagesClass()
k.addImage("http://www.yahoo.com")
k.addImage("http://www.xbox.com")
var-ImagesViewModel={};//全局对象
函数ImagesClass(){
this.addImage=函数(iUrl){
ImagesViewModel.push({“ImageUrl”:iUrl})/
基本上,我需要一种简单的方法来使用多个属性填充ImagesViewModel
。是否需要在ImagesViewModel
中指定属性?也许我不需要指定全局变量就可以完成所有这些
我发现了错误
对象没有方法推送
你们想要的是一个数组而不是一个对象,push是一个数组原型上的方法,你们正试图在对象上使用它 更改:
var ImagesViewModel = {};
致:
您也可以这样做,以便ImagesClass
的每个实例都有自己的图像集
function ImagesClass() {
var _images = [];
this.addImage = function (iUrl) {
_images.push({ "ImageUrl": iUrl }) //< Error is here
}
this.getImages = function(){
return _images;
}
}
您想要的是数组而不是对象,push是数组原型上的一种方法,您正试图在对象上使用它 更改:
var ImagesViewModel = {};
致:
您也可以这样做,以便ImagesClass
的每个实例都有自己的图像集
function ImagesClass() {
var _images = [];
this.addImage = function (iUrl) {
_images.push({ "ImageUrl": iUrl }) //< Error is here
}
this.getImages = function(){
return _images;
}
}
push方法仅适用于数组,这里您尝试将()推送到对象,这就是它不起作用的原因
您需要更改
var ImagesViewModel={}代码>至var ImagesViewModel=[]代码>push方法仅适用于数组,这里您尝试将()推送到对象,这就是它不起作用的原因
您需要更改var ImagesViewModel={}代码>至var ImagesViewModel=[]代码>从设计角度来看,您可能不希望viewmodel只是一个平面阵列(即使您将其声明为对象,正如其他海报所指出的)
我建议声明一个数组声明来保存ImagesViewModel对象中的图像
var ImagesViewModel = { // ViewModel generic OBJECT
this.Images = new Array(); // prototype ARRAY object
};
function ImagesClass() {
this.addImage = function (iUrl) {
ImagesViewModel.Images.push({ "ImageUrl": iUrl })
}
}
从设计角度来看,您可能不希望viewmodel只是一个平面阵列(即使您将其声明为对象,正如其他海报所指出的)
我建议声明一个数组声明来保存ImagesViewModel对象中的图像
var ImagesViewModel = { // ViewModel generic OBJECT
this.Images = new Array(); // prototype ARRAY object
};
function ImagesClass() {
this.addImage = function (iUrl) {
ImagesViewModel.Images.push({ "ImageUrl": iUrl })
}
}
这只是一个对象,而不是JSON。请注意,这个问题与JSON完全无关。您似乎混淆了JavaScript对象文本(JavaScript语言语法的结构)和JSON(一种独立于语言的数据交换格式,如XML或CSV)。我将相应地编辑您的问题。另请参见:。这只是一个对象,而不是JSON。请注意,问题与JSON完全无关。您似乎混淆了JavaScript对象文本(JavaScript语言语法的结构)和JSON(一种独立于语言的数据交换格式,如XML或CSV)。我将相应地编辑您的问题。另请参见:。明白了,在我上面的示例中,我可以在类内执行所有操作而不必声明全局变量吗?@highwingers你可以,只需在类内移动变量。明白了,在我上面的示例中,我可以在类内执行所有操作而不必声明全局变量吗?@highwingers你可以,只需在类中移动变量。