我使用以下Javascript从Firebug收到page() is not defined
错误消息。为什么呢?
( function() {
var page = function() {
var min_central_width = 10;
function minimumCentralWidth(val) {
min_central_width = val;
}
}
$(document).ready(function() {
page().minimumCentralWidth(400);
});
})();
我还是Javascript的新手。我怎么能避免这个?
答案 0 :(得分:4)
问题是page
没有返回值,因此page()
为undefined
。你必须写这样的东西:
( function() {
var page = function() {
// create an object to return:
var ret = {};
// set its properties:
ret.min_central_width = 10;
ret.minimumCentralWidth =
function (val) {
this.min_central_width = val;
};
// return it:
return ret;
};
$(document).ready(function() {
page().minimumCentralWidth(400);
});
})();
。 。 。但上面并没有做任何事情。它会创建一个新对象,并将对象的min_central_width
设置为400
。 。 。但它没有使用任何物体,所以上面没有任何有意义的效果。 (这只是因为你删除了与问题无关的代码吗?如果是,那就不用了。: - )
答案 1 :(得分:2)
即使这里有一些好的答案,我还想补充一些,根据你的工作提供一些可能的选择。
如果你真的想让minimumCentralWidth属于Page类的属性,你可以这样做:
( function() {
var page = function() {
var min_central_width = 10;
this.minimumCentralWidth = function (val) {
min_central_width = val;
alert('set to ' + val);
}
}
$(document).ready(function() {
var p = new page(); //new up your object
p.minimumCentralWidth(400);
});
})();
如果您正在尝试模拟静态实用程序类,则可以执行以下操作:
( function() {
var page = new function() { //single instance of your page class
var min_central_width = 10;
this.minimumCentralWidth = function (val) {
min_central_width = val;
alert('set to ' + val);
}
}
$(document).ready(function() {
page.minimumCentralWidth(400);
});
})();
如果您对这些示例的工作方式有任何具体问题,请与我们联系,我将尝试添加更多详细信息!