jQuery基础知识

创建对象的方式(三种):
1.new
var obj = new Object();
2.字面量(对象字面量)
  1. 简单字面量:
 var obj2 = {};
    obj2.name = "ben";
    obj['age'] = 22; //区别:.是获取自身的属性<属性加引号>,[]可以是变量
    obj2.todo = function(){
        return this.name;
    }
  1. 嵌套字面量:
	var obj3 = {
        name:"bob",
        age:29,
        todo:function(){
            console.log(this.name);
        },
        address:"where"
    }
3.构造函数 (需要new来调用,this指向person1):
function Person(){
    this.name = name;
    this.age = age;
    this.todo = function(){
        return this.name;
    }
}
实例化:
var person1 = new Person('sonia',20);
console.log(person1.name);

//普通函数(不需要用new,this指向person):
function person(name){
    return name;
}
调用:
person("aa");

//工厂模式
function person(name,age){
    var obj = new Object();
    obj.name = name;
    obj.age = age;
    return obj;
}
调用:
var a1 = person("aa",22);
a1.name;

工厂模式(写法、形式不固定)例子:
function Create(name,age){
    var obj = new Object();
    obj.name = name;
    obj.age = age;
    obj.action = function(){
        return this.name;
    }
    return obj;
}
调用(重复产生N个实例):
var a1 = new Create("aa",22);
var a2 = new Create("aaa",2);
循环与拷贝
  • for循环是同步的,each是异步的
for(var i=0;i<10;i++){

}

var data = msg;
$.each(data,function(index,item){

})

深拷贝:两个独立的个体,比如双胞胎,彼此不会直接产生影响。
浅拷贝:引用就是浅拷贝,像影子一样,随本人一起变化
function Fa(){
    Fa.prototype.name = 'fa';
    function Fb(){

    }
    Fb.prototype = new Fa();
    Fb.prototype.name = 'fb';
    function Fc(){

    }
    Fc.prototype = new Fb();
    Fc.prototype.name = 'fc';
    var aa = new Fc();
    aa.age;
}
  • 参数传递:
//在一个对象中调用另一个对象
call(this,name,age)
apply(this,[数组])

递归(自己调用自己)
如:
function fact(num){
    if(num<=1){
        return 1;
    }else{
        return num*fact(num-1);
    }
};
过程:
4*fact(3)
4*3*fact(2)
4*3*2*fact(1)=4*3*2*1=24
this关键字(函数的拥有者)
1.函数中引用
var x = 1;
function test(){
    this.x;
};
function test1(){
    this.x=1;
}
//test();
//test1();
//按顺序执行
console.log(x);
2.对象调用 //this指向当前对象
var o = {};
o.a = 1;
o.action = function(){
    return this.a;
}
console.log(o.action());
3.构造函数调用
  • this用来实例化对象,this指向这个实例化新对象,(闭包)函数自执行,this指向的是window
  var number = 1;
        var obj = {
            number:2,
            showNumber:function(){
                this.number = 3;
                (function(){
                    console.log(this.number);//1
                })();
                console.log(this.number);//3
            }
        };
        obj.showNumber();
    结果:
        1
        3
4.this指向
用call和apply传参数来改变this指向
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jason_LS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值