web前端笔试题/面试题小结(2)

//一、原生ajax
var xmlRequest = createXmlRequest();

//每当 readyState 改变时,就会触发 onreadystatechange 事件。
xmlRequest.onreadystatechange = function() {

/**
* readyState
* 0(未初始化)
* 1(初始化)
* 2(发送数据)
* 3(数据传送中)
* 4(完成)
* status
* 200 请求成功,有数据返回
* 204 请求成功,无数据返回
*
*
**/
if (xmlRequest.readyState == 4 && (xmlRequest.status == 200 ||  xmlRequest.status == 204)) {
console.log(xmlRequest.responseText)
}
}
*
* open(method,url,async)
*
* method:请求的类型;GET 或 POST
* url:文件在服务器上的位置
* async:true(异步)或 false(同步)
*
*
* send(string) 将请求发送到服务器
* string:仅用于POST请求
*
*
xmlRequest.open("POST", 'url', false);
xmlRequest.send(null);


function createXmlRequest() {
var xmlRequest = null;
try {
xmlRequest = new XMLHttpRequest();

} catch (e) {
try {
xmlRequest = new ActiveXObject("Msxml2.XMLHTTP"); //IE6;
} catch (e) {
xmlRequest = new ActiveXObject("Microsoft.XMLHTTP"); //IE5
}
}
return xmlRequest;
}

//二、继承
var Fuite = function(name){
this.name = name || 'Fuite';
this.caneat = function(){
console.log(this.name+":YES ");
}
}

var Apple = function(name){
//apply修改this的指向
Fuite.apply(this,[name]);
}
var temp = function(){

}
temp.prototype = Fuite.prototype;
Apple.prototype = new temp();

var apple1 = new Apple("tom");
apple1.caneat();//tom:YES
console.log(apple1 instanceof Apple);//true
console.log(apple1 instanceof Fuite);//true

//三、闭包

/**
* 闭包就是有权访问另一个函数作用域的变量的函数
*
* 闭包的优点:防止数据污染
*
*
* 闭包的缺点:容易造成内存泄漏
*
**/
function outer(){
var name = "one";
var fn = function(){
console.log("内部function");
}

var inner = function(){
return name;
}
return inner;
}
var result = outer();
console.log(result);

posted @ 2018-03-19 15:01  剪水作花飞  阅读(99)  评论(0编辑  收藏  举报