博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS-- this
阅读量:4955 次
发布时间:2019-06-12

本文共 1066 字,大约阅读时间需要 3 分钟。

this简介

  this是JS中很重要的一个关键字,不是变量,也不是属性名,它总是指向一个对象;

  而这个对象是在运行时基于函数的执行环境动态绑定的;

  此外JS不允许为this赋值。

 

this指向分类

  作为普通函数调用

  作为构造函数调用

  作为对象的方法调用

  call和apply调用

 

  作为普通函数调用

    当函数以普通函数的方式调用时,函数内的this在非严格模式下指向window,在严格模式下指向undefined

var name = “global”;var person = {    name: "tom",    sayName: function () {        console.log(this.name);    }        }var printName = person.sayName;printName(); //global

 

  作为构造函数调用

    当函数通过new调用时,即以构造函数的方式调用,函数会返回一个对象,函数内部的this指向这个返回的对象

function Person (name) {    this.name = name;     console.log(this);  } var person = new Persosn("tom"); //{name: "tom"}

 

  作为对象的方法调用

    当函数作为某个对象的属性时,函数内部的this指向这个对象

var person = {    name: "tom",    sayName: function () {        console.log(this.name);    }        } persosn.sayName(); //"tom"

 

  call和apply调用

    通过call,apply的方式调用函数,可以动态的改变传入函数中的this指向

var sayName = function () {
  console.log(this.name); } var person1 = {
  name: "tom" } var person2 = {
  name: "lily" } sayName.call(person1); //"tom" sayName.call(person2); //"lily"

 

转载于:https://www.cnblogs.com/marton/p/10134673.html

你可能感兴趣的文章
vue开发 - 根据vue-router的meta动态设置html里title标签内容
查看>>
Linux(一)__入门介绍
查看>>
iOS 键盘
查看>>
Alpha 冲刺(9/10)
查看>>
加入ScrollView后OnGestureListener无效的解决办法
查看>>
Oracle BIEE 向外传递参数的实现方式
查看>>
算法提高 学霸的迷宫
查看>>
Two Sum
查看>>
如何成为一个牛逼的程序员
查看>>
delphi IDE的代码完成功能
查看>>
Delphi XE5 android 获取网络状态
查看>>
int main(int argc,char* argv[]) 的含义和用法
查看>>
jquery 目錄樹
查看>>
git stash的用法
查看>>
关于旅行
查看>>
绝对居中对齐的好办法
查看>>
java ->JDBC
查看>>
朴素贝叶斯
查看>>
团队冲突管理
查看>>
日志记录:MySQL系列之十一
查看>>