分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

JS-- this

发布时间:2023-09-06 02:26责任编辑:胡小海关键词:暂无标签

this简介

  this是JS中很重要的一个关键字,它总是指向一个对象,

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

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); //"tome"
sayName.call(person2); //"lily"

JS-- this

原文地址:https://www.cnblogs.com/marton/p/10134673.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved