JAVASCRIPT问题~求教
时间:2013-10-03
来源:互联网
RUN以下个PROGRAM 一直都系ALERT 10,
但本想佢ALERT 1 至 10, 完全唔知错咩?
我唔想改STRUCTURE 去做到个效果。
THANK~~
<script>
function init(){
var newItems = new Array();
// Create 10 new Items
for(i = 0;i< 10;i++) {
newItems.push({
id: "item-"+i,
x: 0,
y: 0,
// ctx or context, is passed to the item by the layer
draw: function () {
if(i > 0) {
alert(i);
}
}
});
}
var Scene={
Layer:null
};
Scene.Layer = Scene.prototype = function (layer) {
var defaultLayer = {
/**
* @var id {String} The string identifier of the layer
*/
id : "layer_id",
/**
* @var items {Array} The array of items stored in the layer
*/
items: [],
init:function(layer){
this.id = typeof(layer.id) != "undefined" ? layer.id : this.id;
this.items=layer.items;
return this;
},
draw : function () {
for(var i=0;i<this.items.length;i++){
this.items.draw();
}
}
}
return defaultLayer.init(layer);
};
var mLayer=new Scene.Layer({
id: "layer",
items: newItems
});
mLayer.draw();
};
init();
</script>
作者: philippower 发布时间: 2013-10-03
包起程式码...这样好难睇

作者: Susan﹏汪汪 发布时间: 2013-10-03
eg.
var _i = i
alert(_i)
作者: a8d7e8 发布时间: 2013-10-03
Just practicing dart here.
Draw(Scene scene);
}
class MockDraw implements IDraw {
MockDraw(){
}
Draw(Scene scene) {
for(var model in scene.models) {
print(model.x.toString() + " " + model.y.toString());
}
}
}
class MyModel {
int x, y;
MyModel(this.x, this.y){
}
}
class Scene {
List<MyModel> models;
IDraw draw;
Scene(IDraw draw, List<MyModel> models) {
this.draw = draw;
this.models = models;
}
Draw() {
draw.Draw(this);
}
}
void main() {
List<MyModel> models = new List<MyModel>();
for(int i=0; i< 10; i++) {
models.add(new MyModel(i, i));
}
MockDraw mockDraw = new MockDraw();
Scene scene = new Scene(mockDraw, models);
scene.Draw();
}
作者: form5 发布时间: 2013-10-03
你要写 "closure" 架......
eg.
var _i = i
alert(_i)
但我加咗closure 都系咁,系咁ALERT出10

[code]
<script>
function init(){
var newItems = new Array();
// Create 10 new Items
for(i = 0;i< 10;i++) {
newItems.push({
id: "item-"+i,
x: 0,
y: 0,
// ctx or context, is passed to the item by the layer
draw: function () {
var _i=i;//closure
if(_i > 0) {
alert(_i);
}
}
});
}
var Scene={
Layer:null
};
Scene.Layer = Scene.prototype = function (layer) {
var defaultLayer = {
/**
* @var id {String} The string identifier of the layer
*/
id : "layer_id",
/**
* @var items {Array} The array of items stored in the layer
*/
items: [],
init:function(layer){
this.id = typeof(layer.id) != "undefined" ? layer.id : this.id;
this.items=layer.items;
return this;
},
draw : function () {
for(var i=0;i<this.items.length;i++){
this.items.draw();
}
}
}
return defaultLayer.init(layer);
};
var mLayer=new Scene.Layer({
id: "layer",
items: newItems
});
mLayer.draw();
};
init();
</script> [/code ]
作者: philippower 发布时间: 2013-10-03
a sample for you
function Point(i) {
this.x = i;
}
Point.prototype.draw = function () {
alert(this.x);
};
return Point;
})();
var Layer = (function () {
function Layer() {
this._points = [];
for (var i = 0; i < 10; i++) {
this._points.push(new Point(i));
}
}
Layer.prototype.draw = function () {
for (var i = 0; i < 10; i++) {
this._points[i].draw();
}
};
return Layer;
})();
var Scene = (function () {
function Scene() {
this.defaultLayer = new Layer();
}
return Scene;
})();
var layer = new Scene().defaultLayer;
layer.draw();
作者: form5 发布时间: 2013-10-03
Thanks!
但我加咗closure 都系咁,系咁ALERT出10

function init(){
var newItems = new Array();
// Create 10 new Items
for(i = 0;i< 10;i++) {
newItems.p ...
作者: a8d7e8 发布时间: 2013-10-03
为咗方便可在外建立完ITEM LIST先PUSH入LAYER,
唔大改STRUCTURE , 只有系ITEM 加个INDEX 去SAVE低个i.
newItems.push({
index:i,
id: "item-"+i,
x: 0,
y: 0,
draw: function () {
if(index> 0) {
alert(index);
}
}
});
}
作者: philippower 发布时间: 2013-10-03
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28