小姿势--JS

7 篇文章 0 订阅
3 篇文章 0 订阅

只有执行力的叫三级工程师

Javascript

闭包

函数可以访问它被创建时所处的上下文环境,这叫做闭包。

函数(function)与对象

JS中一切皆对象,function就是对象。

this

1.当一个函数被保存为对象的一个属性时,我们称它为一个方法。当一个方法被调用时this被绑定到该对象。(这是个比较正常的情况)
2.函数不作为对象的属性,也就是当做函数来调用的时候,函数内部的this被绑定到全局变量。
3.(构造器调用模式)

var Que = function(string){
    this.status = string;
}

这时跟第一种情况差不多,是比较正常的情况。

apply()和call()两个方法

栗子:对象1.方法.apply(对象2 , …)
这两个方法的作用一样,只是参数的形式不一样。都是将对象2与对象1替换。
这个方法体中的this原来都是指向的对象1(也可能指向全局标量windows),apply以后方法体中的this指向的就编程对象2了。

手写bind()
Function.prototype.bind = function(that){
    var method = this,
        slice = Array.prototype.slice;
        args = slice.apply(arguments,[1]);
    return function(){
        return method.apply(that,args.concat(slice.apply(arguments,[0])));
    };
};

var x = function(){
    return this.value;
}.bind({value:666});
alert(x());// 666
// 书上抄的,还没有完全了理解...

对象的属性

Person.name与Person[name]这种写法等价。

JQuery

扩展/插件

出处

JQuery扩展分两种:
1.对JQuery本身的扩展
调用如$.foo();
2.对JQuery所选对象扩展方法
调用如$('#myF').foo();

对JQuery本身的扩展

写法如下:

$.foo = function(){  
    alert("foo");  
}  

//调用方法   
$.foo(); 
$.extend({  
    foo:function(){  
        alert("foo");  
    },  
    bar:function(){  
        alert("bar");  
    }  
})  

//调用方法   
$.foo();  
$.bar();  
$.myPlugin = {  
    foo:function(){  
        alert("foo");  
    },  
    bar:function(){  
        alert("bar");  
    }  
}  

//调用方法  
$.myPlugin.foo();  
$.myPlugin.bar(); 

对JQuery所选对象扩展方法

写法如下:

$.fn.foo = function(){
    alert("hello jquery");
}

$('#myF').foo()
(function($){   
    $.fn.extend({   
        pluginName:function(opt,callback){   
            alert("foo");   
        }   
    })   
})(jQuery);  
$("#myF").pluginName();
(function (jq) { 
    jq.fn.foo = function (obj) { 
        alert(obj);
    }; 
})(jQuery) 
$("#myF").foo("hello jquery");

……

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值