this是Javascript语言的一个关键字。
它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如,
function test(){
this.x = 1;
}
1.this就是全局对象
2.作为某个对象的方法调用,这时this就指这个上级对象
3.作为构造函数调用,就是通过这个函数生成一个新对象(object)。这时,this就指这个新对象
4.apply()是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象。
// this其实是一个Html 元素。
// $this 只是个变量名,加$是为说明其是个jquery对象。
// 而$(this)是个转换,将this表示的dom对象转为jquery对象,这样就可以使用jquery提供的方法操作。
(function($){
$.fn.hilight = function(options){
debug(this);
var defaults = {
foreground: 'red',
background: 'yellow'
};
var opts = $.extend({}, $.fn.hilight.defaults, options);
return this.each(function() {
// this其实是一个Html 元素。
// $this 只是个变量名,加$是为说明其是个jquery对象。
// 而$(this)是个转换,将this表示的dom对象转为jquery对象,这样就可以使用jquery提供的方法操作。
$this = $(this);
// build element specific options
var o = $.meta ? $.extend({}, opts, $this.data()) : opts;
// update element styles
$this.css({
backgroundColor: o.background,
color: o.foreground
});
var markup = $this.html();
// call our format function
markup = $.fn.hilight.format(markup);
$this.html(markup);
});
};
// define our format function
$.fn.hilight.format = function(txt) {
return '<strong>' + txt + '</strong>';
};
// 插件的defaults
$.fn.hilight.defaults = {
foreground: 'red',
background: 'yellow'
};
function debug($obj) {
if (window.console && window.console.log){
window.console.log('hilight selection count: ' + $obj.size());
}
};
})(jQuery)
博客原文:
http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.html