JavaScript imageObj&;范围
有一个嵌套函数(函数中的函数)与我添加的一些测试类似:JavaScript imageObj&;范围,javascript,scope,Javascript,Scope,有一个嵌套函数(函数中的函数)与我添加的一些测试类似: function addImage( ....., borderColor){ var height; var width; var imageObj = new Image(); alert(' just before inner function is: ' + borderColor); imageObj.onload = function(){ alert(' just after inn
function addImage( ....., borderColor){
var height;
var width;
var imageObj = new Image();
alert(' just before inner function is: ' + borderColor);
imageObj.onload = function(){
alert(' just after inner function is: ' + borderColor);
第一个警报显示正确的颜色,但第二个警报为“null”
如何获取嵌套函数内部的变量borderColor?首先声明
onload
,然后通过分配源来触发加载,比如将外部函数包装在内部函数周围:
function addImage(src, borderColor)
{
var pic = new Image();
pic.onload = function () {
alert(' just after inner function is: ' + borderColor);
}
alert(' just before inner function is: ' + borderColor);
pic.src = src; //<-- this is what you need to set.
}
函数addImage(src,borderColor)
{
var pic=新图像();
pic.onload=函数(){
警报('just after internal function is:'+borderColor);
}
警报('就在内部函数为:'+borderColor之前);
pic.src=src;//它对我来说很好用
- 您确定第二个警报是
警报('just after internal function is:'+borderColor);
部分吗
- 您确定变量
borderColor
未在其他地方使用吗
- 你在测试什么浏览器
您可以尝试以下方法():
请显示整个函数。SLacks,我通过将所有内容添加到第二个提示符进行编辑。John,然后你必须设置src属性,否则不会触发onload。我不认为这是他的问题,他仍然收到警报,但他说警报范围不正确。这是一个关于较大函数的调试问题,也是Caspar p定点输出imageObj是在onload之后设置的(它与.src=\uuuuuuuuuu之后的一行有关,我不理解操作顺序。您的评论让我思考并帮助修复了这个问题。
function addImage(borderColor){
var imageObj = new Image();
alert(' just before inner function is: ' + borderColor);
imageObj.addEventListener("load", function() {
alert(' just after inner function is: ' + borderColor);
}, false);
imageObj.src = "http://www.google.com/intl/en_com/images/srpr/logo1w.png";
};
addImage("#000000");