读书人

[100分][新手有关问题] 帮小弟我javas

发布时间: 2012-03-22 17:43:57 作者: rapoo

[100分][新手问题] 帮我javascript面向对象的一个小问题
我怎么才能在Toolbox中访问到MapEditer的成员呢?this.editerLeft或者editerLeft 都访问不到哦!怎么解决呢?
--------------------------------------
MapEditer = function()
{
// Editer
var UNIT = 'px ';
this.editerLeft = 100;
this.editerTop = 20;
this.editerWidth = 800;
this.editerHeight = 600;

// Toolbox
var Toolbox = function()
{
// Toolbox
this.toolboxLeft = editerLeft + 10; // 请问这里怎么才能访问到editerLeft阿?
this.toolboxTop = editerTop + 10;
this.toolboxWidth = 150;
this.toolboxHeight = 580;

this.Create = function()
{

}
}

this.Create = function()
{

}
}

帮忙看看,帮顶有分!!谢谢!!

[解决办法]
var Toolbox = function()
->
thi.Toolbox = function()
[解决办法]
对不起,没看清楚,程序感觉关怪的!
Toolbox的context是全局的,要想访问MapEditer,我想只能传参数了
[解决办法]
MapEditer = function()
{
// Editer
var UNIT = 'px ';
var wc = this;
this.editerLeft = 100;
this.editerTop = 20;
this.editerWidth = 800;
this.editerHeight = 600;

// Toolbox
var Toolbox = function()
{
// Toolbox
alert(wc.editerLeft)
你这里的this可是window了。。你给window加这么多属性?
this.toolboxLeft = editerLeft + 10; // 请问这里怎么才能访问到editerLeft阿?
this.toolboxTop = editerTop + 10;
this.toolboxWidth = 150;
this.toolboxHeight = 580;

this.Create = function()
{

}
}

this.Create = function()


{

}
}
[解决办法]
如果不想加变量可以。
<script type= "text/javascript ">
var MapEditer = function () {
// Editer
var UNIT = 'px ';
this.editerLeft = 100;
this.editerTop = 20;
this.editerWidth = 800;
this.editerHeight = 600;

// Toolbox
var Toolbox = (function (parent) {
return function () {
this.toolboxLeft = parent.editerLeft + 10; // 请问这里怎么才能访问到editerLeft阿?
this.toolboxTop = parent.editerTop + 10;
this.toolboxWidth = 150;
this.toolboxHeight = 580;
this.Create = function () {};
};
})(this);

this.Create = function() {
return new Toolbox
};
};

var wc = new MapEditer
var nwc = wc.Create();
alert(nwc.toolboxLeft);
</script>

读书人网 >JavaScript

热点推荐