javascript - javascript onload 如何在实例中工作?

标签 javascript

这是我正在尝试做的事情的简单版本:

<script type="text/javascript">
    function Example(position) {
        this.position = position;
        instance = this;

        img = new Image();
        img.src = 'http://www.gazette-ariegeoise.fr/IMG/jpg/test.jpg';

        console.log(this.position);
        //logs as expected 1 than 2 on the second


        img.onload = function() {
            console.log(instance.position); 
            //logs 2 twice
        }
    }

    ex1 = new Example(1);
    ex2 = new Example(2);
</script>

onload 函数以某种方式记录实例 2 的位置两次,

为什么?

最佳答案

instance 是全局的,因此对 Example() 的第二次调用将覆盖第一个。

使用var创建局部变量。

更好的是,还有use "use strict";所以它不会让你创建意外的全局变量。

关于javascript - javascript onload 如何在实例中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34571676/

相关文章:

javascript - 替代 jQuery 的 .last

javascript - 如何将 jQuery 工具提示附加到 jQuery 日期选择器

javascript - 需要点击超链接才能访问代码

javascript - 传单小 map 滚轮缩放禁用

javascript - HTML 文本字段的行为类似于密码字段

javascript - 麻烦造型扩展 polymer 元素(纸 slider )

javascript - 为什么我的图像按钮没有打开它应该打开的链接?

javascript - 处理 Ajax 请求的响应

javascript - localStorage.setItem() 不起作用 : not writing

math - 用于网络的简单数学库