有人知道吗?找不到这个问题,即使它看起来很基本。在JavaScript中,我怎么能告诉函数绑定到什么对象(即它的'this')而不调用它?
1
A
回答
3
的context
(在this
关键字),这不是一个完全隐含,它可以设置和改变明确。
例如:
function test() {
alert(this);
}
test.call("Hello world");
的test
函数被调用的字符串作为上下文。
所以总而言之,除非你明确定义它,否则你不知道什么是this
,或者你在函数内部。
2
相同的功能将看到不同的值this
取决于它如何调用。有关详细信息,请参见Crockford,但有四种情况:
- 作为一个简单函数调用,它被绑定到全局/窗口对象。
- 作为对象调用方法,它引用该对象。
- 通过
new
关键字作为构造函数调用,它是新实例化的对象,它继承自存储在函数自己的prototype
属性中的对象。 - 由自己调用
apply
或call
方法,它是提供的第一个参数。
如果这些情况听起来复杂,繁琐,而且容易出错,更有理由避免依赖this
以外的方法,它是很有道理的反正。
相关问题
- 1. 我怎样才能调用JavaScript函数,并传递到它行的对象?
- 2. JavaVM.framework。它是什么?我怎么用它?
- 3. 为什么我不能在定义对象时在(JavaScript)Worker中使用它?
- 4. 当我告诉它时,为什么我的Three.js对象不会移动?
- 5. - 为什么?我怎么能阻止它?
- 6. 为什么当我尝试将一个函数绑定到它本身时,“this”对象仍然指向窗口?
- 7. Neo4j慢?我一定在做错什么,请告诉我它是什么
- 8. 自定义功能,它告诉我,我的函数不是一个函数
- 9. pybrain什么是总误差,它告诉我们什么
- 10. 为什么不能'基类对象'调用它自己的虚函数? C++
- 11. 为什么需要“this”来调用对象中的函数
- 12. Node.js和Socket.io我怎么能发射DOM对象,而它似乎不可能?
- 13. 有人能告诉我为什么它失败了吗?
- 14. JS - 它是什么类型的对象,我怎样才能访问它
- 15. haskell函数不工作,谁能告诉我为什么?
- 16. 在UNIX上的C中,进程如何告诉它对文件有什么权限而不打开它?
- 17. 为什么我不能在内部函数中使用“this”?
- 18. 给定一个任意的javascript对象,我怎么找到它的方法?
- 19. 为什么gunicorn不断告诉我它有4名工人?
- 20. 为什么当我告诉它时鼠标不会点击?
- 21. RandomAccessFile.write不写我告诉它
- 22. 为什么$(this)不能在javascript函数中工作?
- 23. 以后怎么存储功能,并调用它在QML的JavaScript
- 24. 为什么Java不能告诉我什么时候我不能使用Integer?
- 25. 为什么我在webbrowser上的调试系统告诉我(drawImage不是函数)?
- 26. 什么是.framework文件,我怎么才能得到它?
- 27. 的Visual C++ 2010:我怎么告诉它需要特定的DLL编译器?
- 28. python中的surface.blit()函数是什么?它有什么作用?怎么运行的?
- 29. 为什么我的应用程序重定向时,我告诉它?
- 30. 为什么我的JS对象看不到它自己的函数?
啊哈,无赖。 (这里) – prismofeverything 2009-11-14 19:38:03