JavaScript 'this' 混淆

标签 javascript object this

这可能很简单,但我很困惑,所以也许我今天仍然可以学到更多东西。我正在尝试执行以下操作:

var myObj = {};
myObj.src = {}
myObj.src.A = ['1.png','2.png','3.png'];
myObj.A = new Image();
myObj.A.src = this.src.A[0];

这将导致Uncaught TypeError:无法读取未定义的属性“A”错误。 当我使用 myObj.src.A[0] 而不是 this 时,它工作正常。

在这种情况下使用它的正确方法是什么?

最佳答案

this 指的是执行代码的对象上下文。因此,如果一个对象有一个方法aMethod,那么在aMethod内部this引用拥有它的对象。

我假设您的代码在全局命名空间中运行,因此 this 未定义。实际上,您只需要 myObj.A.src = myObj.src.a[0];

http://www.quirksmode.org/js/this.html

关于JavaScript 'this' 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9263824/

相关文章:

javascript - 为什么回调函数中 "this"指向 "window Object"呢?

Javascript setTimeout 和原型(prototype)

javascript - 关注下一个输入不起作用以及当用户在最后一个输入字段时如何提交表单

javascript - this.setState 不会重新渲染 View ReactJS 和 Ruby on Rails

JavaScript for 循环对象替换未定义并为不存在的键赋值

javascript - 按属性过滤掉对象(不删除)

javascript 排序算法不起作用 - 有什么明显的我做错了吗?

javascript - 如何随机化 HTML 元素的颜色属性?

JavaScript 动态对象作用域

javascript - 转换为 Typescript 后出现 "this"错误