写代码就是造坑,填坑的过程,突发奇想,就想记录一些工作中的小问题,也便于留念和记忆~
一、关于闭包:
简化一下是这样,
function A(){
var B = function(){}
}
如何从外部调用到里面的B
大概就想到了两种解决方案
(1)new一个
function aaa(a){
console.log(a)
this.bbb = function(b){
console.log(b)
}
}
var a = new aaa('A')
a.bbb('b')
(2)return
function aaa(a){
console.log(a)
var bbb = function(b){
console.log(b)
}
var ccc = function(c){
console.log(c)
}
return bbb,ccc;
}
var d = aaa('AAA');
d('BBB')
二、关于ajax请求:
这次主要用的jQuery,但是把
.get()和
.post()给忘记了,就只记得$.ajax(),其实需求单一的话用前两种目标比较明确。
那么,下面就顺便奉上曾经封装过的原生ajax请求:
参数:
* method:post get
* url:请求路径
* async:true false
* 成功函数:function
* 失败函数:function
异常处理:
1) try... catch:
try{
必须要执行的程序代码,情况:1.没有问题 2.有问题
}catch(e){ //这里e是error
console.log(e)
}
1.没有问题的话程序不会执行catch里面的代码,跳过catch
2.有问题的话进入catch代码块
3.catch中的e表示的是一个异常对象,错误的信息在e里面
function ajaxFn(method,url,async,successFunc,failFunc) {
var xmlhttp;
try{
xmlhttp = new XMLHttpRequest();
}catch(e){
//console.log(e);
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//打开
if(method=="get"||"GET"){
//http://www.baidu.com?username=aaa&pwd=123
xmlhttp.open(method,url,async);//注意参数一定不要加引号"method"
xmlhttp.send(null);
}else if(method=="post"||method=="POST"){
xmlhttp.open(method,url,async);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded")
xmlhttp.send(data);//data="username="+userName;
//post数据写在协议里
}else{
alert("请求方式错误!");
return;
}
//处理响应
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200)
{
//响应成功
successFunc(xmlhttp.responseText)
}else{
failFunc("响应失败!")
}
}
}
}
今天, 就先到这里啦,因为工作需要还看过一些前辈的drag代码,自己也封装了一下,接下来会更;另外,还有关于jointjs改版,也是头疼,因为他们变了一些方法名字以及使用方法,还独立出一些文件,关键是好像把0.9几的版本删了,下不了了,以后会分享关于重新整理jointjs的内容~