发表于: 2021-04-17 20:59:33

1 1860


今天完成的事情:

感觉自己js基础还是不够扎实,今天就没做任务,搞懂了this指向、构造函数、原型


明天计划的事情:

查漏补缺,有时间的话,完善任务二,完成身份发放功能


收获:

js中的this指向:
面向对象语言中 this 表示当前对象的一个引用。
但在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。
1.在方法中,this 表示该方法所属的对象。
2.如果单独使用,this 表示全局对象。
3.在函数中,this 表示全局对象。
4.在函数中,在严格模式下,this 是未定义的(undefined)。
即:严格模式下函数是没有绑定到 this 上,这时候 this 是 undefined。
5.在事件中,this 表示接收事件的元素。
即:在 HTML 事件句柄中,this 指向了接收事件的 HTML 元素
6.类似 call() 和 apply() 方法可以将 this 引用到任何对象。

即:apply 和 call 允许切换函数执行的上下文环境(context),即 this 绑定的对象,可以将 this 引用到任何对象

总结一下:

1、以函数的形式调用时,this永远都是window   例如:fun();

2、以方法的形式调用时,this就是调用方法的那个对象  obj.name()

3、当函数以构造函数的形式创立时,this就是新创建的对象

Function Person(){

//执行语句

alertthis);

}

 

 var per = new Person()

这里this指向 per对象

参考:


构造函数:

跟普通声明函数一样,不同的是函数名首字母大写

function Person(){

}

 

调用方式不同,普通函数直接调用,var per = Person(); ,而构造函数需要使用new关键字来调用 var per  = new Preson();

 

构造函数的执行流程:

1、立刻创建一个新的对象

2、将新建的对象设置为函数中的this,在构造函数中可以使用this来引用新建的对象

3、逐行指向函数中的代码

4、将新建的对象作为返回值返回 (不用加return就可以返回)


原型对象:

相当于一个公共的区域,所有用一个累的实例都可以访问到这个原型对象,我们可以将对象中共有的内容,统一设置到原型对象中,这样避免了污染全局变量,



返回列表 返回列表
评论

    分享到