今日总结190522

    xiaoxiao2022-07-07  157

    修改this指向的方法:

    1.call();|| 参数——call(obj1,需要传的参数-可以包括n个值)

    var obj = { name:'张三' age:18, height:180, hobby:function(a){ console.log(this.name+'爱'+a)} obj.hobby('游泳') var obj1 ={name:'李四'} obj.hobby.call(obj1,'游泳')//将hobby函数的this指向改变成了obj1

    2.apply()——参数:apply(obj1,[ ]) //第二个参数必须是数组的形式

    var objCar = { name:'宝马', meony:'150万', run:function(par){ console.log(this.name + '在以1000米每秒的速度跑'+par)}} var objCar1 ={ name:'奔驰' } objCar.run('你行么?') objCar.run.apply(objCar1,['你行么?']) //apply 也是吧objCar的this指向改变成了objCar1 中

    3.bind(obj1)——bind方法会立即改变this指向,但是他不会

    立即执行,他是等我们调用的时候在传参执行。

    var fruit = { name:'苹果', eat:function(v){ console.log(this.name+v) }} var fruit1 ={ name:'菠萝', } fruit.eat('好吃') var mm =fruit.eat.bind(fruit1) mm('不好吃') // === fruit.eat.bind(fruit1)('不好吃')

    原型链:分两条线,一条继承,一条构造。

    继承:就是说继承把他实例化出来的‘创造者’(虚)上的prototype

    上的属性或者方法,找不到再上父级的父级上的prototype上去找

    找到Object.prototype上为止。

    eg:arr——Array.prototype——Object.prototype;

    构造:就是期初来源于Function,他 构造出了例如(Number Boolean..)

    等基本类型的值;而这些值可以访问Function.prototype上的属性和方法

    也只有他们可以访问这些值和方法:

    注意:被基础类型值构造出来的对象没有prototype;

    constructor :找的是构造他的父级的原型链上的一个构造他的方法:

    __proto__: 找的是构造他的父级的原型链上的一整条链到Object.prototype.

    最新回复(0)