Javascript的this用法及jQuery中$this和$(this)的区别


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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM