• 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

  • 相关阅读:
    两种图像缩放算法的对比与实现
    字节流与字符流
    自己的网站 首都易搜网 又修改了一下。。首页改变了
    序列化和反序列化 .NET
    关于 C#异步方法的使用
    vs2010 设计视图中控件无法加载,提示未将对象设置到对象的实例。
    .Net 中的反射(查看基本类型信息) Part.2
    URL重写
    .Net 中的反射(序章) Part.1
    数据库死锁问题 及 解决方法
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/6235480.html
Copyright © 2020-2023  润新知