1
RIcter 2015-03-08 22:09:01 +08:00 via iPhone
this 不是自己的意思_(:з」∠)_
好像 stackoverflow 上有不錯的回答 |
2
Bluecoda 2015-03-08 22:11:44 +08:00
js的this还不算难理解吧。ruby元编程的时候,self才真正满天飞。
|
3
arachide 2015-03-08 22:25:36 +08:00
|
4
EPr2hh6LADQWqRVH 2015-03-08 22:27:14 +08:00
js的函数和python里面这点还挺像的,就是函数可以套在任何一个对象上执行。
python的话就是第一个参数,约定俗称叫它self,但self并不是关键字,换成其他的一样运行。 js的this和python里面的self一个效果,就是当前函数操作的对象,也就是套的对象,现在这个函数套在这个对象上执行。只不过this在js里是关键字,是隐含的。 |
5
bumz 2015-03-08 22:27:50 +08:00
|
6
lcj2class 2015-03-08 22:30:24 +08:00
|
7
rentaro 2015-03-08 22:33:50 +08:00
推荐阅读《JavaScript 高级程序设计》 比你在这问有效
|
8
billlee 2015-03-08 22:36:11 +08:00 2
this 有三种用法
```javascript function fn() { alert(this.something); } something = "global"; obj = { something: "object", method: fn }; fn(); //global obj.method(); //object var obj2 = new fn(); //undefined ``` |
9
FrankFang128 2015-03-08 22:42:42 +08:00
每次用 this 之前,console.log(this) 就好了。
因为 this 是在运行时确定的。 |
10
anewg 2015-03-08 22:44:52 +08:00
|
11
tedd OP 感谢所有回复的童鞋,Javascript高级程序设计已在京东下单,现在开始挨着看看楼上各位提供的链接
|
13
shibo501c 2015-03-08 23:19:43 +08:00
|
14
tedd OP |
15
yinxingren 2015-03-09 00:31:26 +08:00
|
16
hkongm 2015-03-09 10:04:25 +08:00
首先 use strict
其次 var _ = this 再次 bind,apply,call |
18
lalalanet 2015-03-09 11:06:10 +08:00
|
19
hahasong 2015-03-10 01:48:27 +08:00 via Android
我和楼主相反,先学的js,后学的python,突然改用self还有点不习惯。js的this刚开始也是很容易晕菜,其实js的内置类型都是对象,谁调的方法,方法里的this就指哪个对象。call和apply可以将方法用指定对象调用。另外如果用框架或者别人封装的方法,那就要看文档怎么说了,或者你打印一下就知道了
|