如果this关键字出现在html元素的属性的值里面
前言
这种情况里的this,表示当前元素(或者说元素对象,因为html元素对应DOM)。
举例
//XXX.jsp
<p class="line-search-start">
<label>起 :</label> <input type="text" id="startPosition" placeholder="请输入起点"
value="" class="blue" autocomplete="off" οnkeyup="startInputTips(this);"> <a
class="localSug" data-spm-anchor-id="0.0.0.0">我的位置</a>
</p>
<p class="line-search-end">
<label>终 :</label> <input type="text" id="endPosition" placeholder="请输入终点"
value="" autocomplete="off" οnkeyup="startInputTips(this);"> <a class="localSug">我的位置</a>
</p>
//XXX.js
// 启动输入提示功能
function startInputTips(obj){
AMap.plugin('AMap.Autocomplete',function(){//回调函数
//实例化Autocomplete
var autoOptions = {
city: "", //城市,默认全国
input:obj.id //使用联想输入的input的id
};
autocomplete= new AMap.Autocomplete(autoOptions);
//TODO: 使用autocomplete对象调用相关功能
});
}
总结
1、使用的时候传递的是this,接收的时候是obj(或者是其他的变量名字,但最好不要是this,以免与当前对象混淆)。
2、可以通过this对象来访问/获取当前元素的属性的值,访问方式是对象.属性。
参考
http://www.cnblogs.com/birdshome/archive/2005/03/07/95931.html
如果this关键字出现在函数里面
这种情况,都是指当前对象。所谓当前对象,即调用该函数的对象。
在js里,函数按作用域分为2种:
全局函数
全局函数里的this,表示窗口对象window。
对象的函数
如果是某个自定义对象的函数,那么表示当前对象。
参考:
http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.
http://www.ibm.com/developerworks/cn/web/1207_wangqf_jsthis/