美文网首页
2018-07-03---This的六道坎(转载)

2018-07-03---This的六道坎(转载)

作者: 快乐女孩筱梅 | 来源:发表于2018-07-03 11:22 被阅读0次

1.世界尽头,指向window,备胎

比如:

functionfn(){

  console.log(this);

};

fn();


2.点石成金,就是点 . 前面的对象或者方法

比如:

function fn(){

       console.log(this);

}

var b1={

       name:”yuexiaomei”,

       f:fn

}

b1.f();    //b1


3.指腹为婚

Object.prototype.callObject.prototype.apply,可以通过参数指定this,从而来改变this的指向

比如:

var b={

       name:’yuexiaomei’,

       f1(){

                     console.log(this.name);

}

}

var b1={

       name:’xiao’,

}

b.f1.call(b1);    //xiao


4.海誓山盟

Object.prototype.bind,他不但通过新函数来提供永久的绑定,还会覆盖第三层大佬的命令。

function returnThis () {

  return this

}

var boss1 = { name:

'boss1'}

var boss1returnThis =

returnThis.bind(boss1)

boss1returnThis() //

boss1

var boss2 = { name:

'boss2' }

boss1returnThis.call(boss2)// still boss1


5.内有乾坤

当我们new一个函数时,就会自动把this绑定在新对象上,然后再调用这个函数,会覆盖bind的绑定。

New操作符干了哪些事情

(1)创建了一个新的空对象

(2)将this指向新的对象,并绑定了构造函数的prototype里面的方法

(3)执行构造函数里面的代码(为这个新的对象添加属性)

(4)返回新的对象

call,apply,bind三个的使用区别:

都是用来改变函数的this对象的指向的;

第一个参数都是this要指向的对象;

都可以利用后续参数传参;

bind是返回对应函数,便于稍后调用,apply、call是立即调用; 

function showThis () {

  console.log(this);

}

showThis() // window

new showThis() //showThis     ====相当于创建了一个新的对象也叫showThis,然后调用该函数

var boss1 = {

      name:'boss1';

 }

showThis.call(boss1) //

boss1

new showThis.call(boss1)// TypeError   showThis.call is not aconstructor 

var boss1showThis =showThis.bind(boss1)     

boss1showThis() // boss1

newboss1showThis() // showThis


6.军令如山

箭头函数,箭头函数里的this不在妖艳,被永远封印在当前词法作用域之中,在代码运行前就可以确定了,灭掉其他大佬可以覆盖。所以对于箭头函数,重要看他在哪里创建的就行。

function callback (cb) {

  cb()

}

callback(() => {

console.log(this) }) // window

var boss1 = {

  name:

'boss1',

  callback:

callback,

  callback2 ()

{

    callback(()

=> { console.log(this) })

  }

}

boss1.callback(() => {

console.log(this) }) // still window

boss1.callback2(()=> { console.log(this) }) // boss1     callback2在定义的时候是属于boss1这个词法作用域的

相关文章

  • 2018-07-03---This的六道坎(转载)

    1.世界尽头,指向window,备胎 比如: functionfn(){ console.log(this); ...

  • JavaScript This 的六道坎

    鉴于this风骚的运作方式,对this的理解是永不过时的话题,本文试图通过将其大卸六块来钉住这个磨人的妖精。 首先...

  • 营销六道坎

    营销人有六道坎要经历:心态、位置、套路、行动、外界、价值观。这6道坎是我理解的营销人的基本的要素,能很好的越过的话...

  • 33天

    三界六道及六道轮回的真相(欲界天,色界天,无色界天) 佛学理论——六道轮回系列(网络转载) 我们这个世界叫娑婆世界...

  • 从容

    近读《怎样走过人生的六个坎》一文感触颇深,文中将人生的六道坎和盘托出:20岁之前谈梦、20岁以后谈理想、上了30岁...

  • 人生要过六道坎2019.11.22

    人的一生要度过这六道坎: 1,十八岁是未成人向成年人车转变的重要标志,要学会担当,负起责任,不再是在父母呵护下成长...

  • 《短歌行》大善寺

    时光荏苒,日月如梭。 化故为新,何其难得。 过了是门,不过是坎。 天命有司,六道轮回? 悠悠我心,但向阳明。 忠孝...

  • 玄幻小说 《圣爱》 第八十七章 六道轮回(中)

    作者:极天圣洺 欢迎转载!转载注明“作者:极天圣洺”即可。 圣爱 第一部 跨世之恋 第八十七章 六道轮回 (中) ...

  • 玄幻小说 《圣爱》 第八十七章 六道轮回(下)

    作者:极天圣洺 欢迎转载!转载注明“作者:极天圣洺”即可。 圣爱 第一部 跨世之恋 第八十七章 六道轮回 (下) ...

  • 玄幻小说 《圣爱》 第八十七章 六道轮回(上)

    作者:极天圣洺 欢迎转载!转载注明“作者:极天圣洺”即可。 圣爱 第一部 跨世之恋 第八十七章 六道轮回(上) 有...

网友评论

      本文标题:2018-07-03---This的六道坎(转载)

      本文链接:https://www.haomeiwen.com/subject/haeduftx.html