javascript 面向对象 原型链 this指向 jQuery原生封装方法

在javascript里面什么是面向对象

万物皆是对象

字面量  -- 字面上显示的东西叫做字面量
包装类  -- 没有new的函数声明就是包装类

什么是对象

1.只要是对象就可以有自己的私有属性。
2. 只要是new 出来的都是对象。
3. 不同对象肯定不会相等的。
4. 对象都会有引用机制 。
*  如果不想引用就重新赋值

 生命周期:
面向对象 -  最有用的就是私有属性

面向对象的三大特点:

1、封装  2、继承  3、多态

prototype 原型 

可以向对象添加属性和方法

    var str="66666";
    var str2=new String("1215");
    
    String.prototype.my=99;
    console.log(str.my);  //添加属性


    String.prototype.your=function(){
        alert("添加了一个方法")
    }
    str.your();

this指向

1/在普通函数下  this指向的是  window

2/ 有事件源指向事件源本身

3/ 在定时器下 除es6 this 指向window。

4/ 对象下  this 指向的是自己本身。

call和apply的区别和相同点

相同点:转换this指向

区别: call() 除去第一个参数之外,之后的参数是以普通传参的方式传参
         apply() 除去第一个参数之外,之后的参数是以数组的方式传参

function leo1(name,age){
    this.name=name;
    this.age=age;
}
function leo2(name,age){
    leo1.call(this,name,age)
    //leo1.apply(this,[name,age])
}
var Leo2=new leo2("小明",18);
console.log(Leo2)

继承 - 子级可以用父级的属性和方法,但是父级不能用子级的


	function A(){
		this.name = 'abc';
	}
	A.prototype.showName = function(){
		alert(this.name)
	}
 
	function B(){
		//this指向是new出来的B   B.name = 'abc';
		A.call(this);
	}
	B.prototype = A.prototype;
	B.prototype.fn = function(){
		alert('123')
	}
	var objB = new B();
	var objA = new A();
	// alert(B.name)
	objB.showName()
	objA.fn()

jquery 原生封装方法:

function  jquery(){
        
};
jquery.prototype.addClass = function(){
    
}
function  $(obj){
    
    return  new  jquery(obj);
}

$("a")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值