我正在尝试使用JavaScript编写一些对象。我有一个似乎正在工作的小对象,但这个对象需要一个多维数组。
当我尝试使用此对象的此片段时,我的浏览器崩溃了......
有没有关于如何在javascript中编写对象的好教程?
function map(sizeX, sizeY)
{
var cityArr = new Array();
this.sizeX = sizeX;
this.sizeY = sizeY;
this.generateCity = generateCity;
var cityXY = new Array();
function generateCity(cityNum)
{
alert(cityNum);
}
}
当我调用它时,当我添加对generateCity方法的调用时,它会失败,我的浏览器会兑现。
var objMap = new map();
//objMap.generateCity(2);
我做错了什么?
答案 0 :(得分:3)
首先,一些JavaScript最佳实践:
[]
创建新数组,而不是new Array()
,function Map(...) {...}
,而不是map(...)
,function generateCity(cityNum)
放在this.generateCity = generateCity
之前,console.log
,而不是alert
,这意味着这样做:
function Map(sizeX, sizeY)
{
this.sizeX = sizeX;
this.sizeY = sizeY;
// you're not using these arrays. Why are they in your example code?
var cityArr = [],
cityXY = [];
}
Map.prototype = {
sizeX: 0, // Some default values, shared by all instances
sizeY: 0, // unless overriden in the constructor function.
generateCity: function(cityNum) {
// let's not block the entire page by using alert.
console.log("cityNum: " + cityNum);
}
}
所以,话虽如此,这段代码运行得很好,就像在http://jsfiddle.net/mtr24上看到的那样(在你的控制台打开的情况下运行,你会看到“cityNum:2”正在打印。