首页 > 编程语言 >JavaScript学习笔记—this的使用

JavaScript学习笔记—this的使用

时间:2023-01-07 21:22:16浏览次数:39  
标签:function 调用 name 对象 JavaScript 笔记 sayName 学习 构造函数

  解析器调用函数时每次都会向函数传递进一个隐含的参数this,this指向的是一个对象,这个对象称为函数执行的上下文对象。
  根据函数的调用方式不同,this会指向不同的对象
(1)以函数的形式调用时,this永远都是window
(2)以方法的形式调用时,this就是调用方法的那个对象
(3)以构造函数的形式调用时,this就是新创建的哪个对象

function fun(){
  console.log(this);
}
// 函数形式调用 this是Window
fun(); // object Window
// 创建一个对象
var obj = {
  name: "孙悟空",
  sayName: fun
};
// 方法形式调用 this是obj
obj.sayName(); // object Object
// 构造函数
function Person(name, age, gender){
  this.name = name;
  this.age = age;
  this.gender = gender;
  this.sayName = function(){
    alert(this.name);
  };
}
// 上面构造函数里的this就是新建的 per 对象
var per = new Person("孙悟空", 18, "男"); 
// 上面构造函数里的this就是新建的 per2 对象
var per2 = new Person("猪八戒", 28, "男"); 

标签:function,调用,name,对象,JavaScript,笔记,sayName,学习,构造函数
From: https://www.cnblogs.com/zibocoder/p/17033575.html

相关文章

  • JavaScript学习笔记—对象的方法
    对象的属性值可以是任何的数据类型,也可以是个函数如果函数作为对象的属性保存,那这个函数是这个对象的方法,调用函数就是调用对象的方法varobj=newObject();//向对象......
  • 第一天开始学习Java--准备工作
    注册博客园养成一个做笔记的好习惯Markdown学习--Typora标题--(#+空格+标题)几个#表示几级标题(最多六个)字体粗体:**字体**斜体:*字体*斜体加粗:字体(两边三个*)删除......
  • 学习笔记——书城项目之“我的订单”功能
    2023-01-07一、“我的订单”功能(1)找到“我的订单”的位置①购物车页面Cart.html中的第26行②结算完成页面Checkout.html中的第45行将两个位置中超链接的“href”改变......
  • nvidia-rapids (cuML)机器学习加速库安装和使用
    背景:sklearn是非常成熟、使用方便的机器学习算法工具包,但是其运行速度慢,只能支持CPU运行,一直是一个诟病。现在也出现了对sklearn中算法加速的工具包,比如thundersvm、skl......
  • JavaScript学习笔记—函数的参数
    (1)如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined//函数,a和b叫形参functionsum(a,b){console.log("a="+a);console.log("b="+b);consol......
  • SpringBoot基础学习二
    45、web实验-抽取公共页面官方文档-TemplateLayout公共页面/templates/common.html<!DOCTYPEhtml><htmllang="en"xmlns:th="http://www.thymeleaf.org"><!--注......
  • JavaScript学习笔记—基本数据类型和引用数据类型
    基本数据类型:String、Number、Boolean、Null、Undefined引用数据类型:ObjectJS中的变量都是保存到栈内存中的  基本数据类型的值直接在栈内存中存储,值与值之间是独立......
  • JavaScript学习笔记—创建对象
    (1)new方式创建对象varobj=newObject();obj.name="孙悟空";obj.age=18;obj.sayName=function(){console.log("我是孙悟空");};(2)对象字面量创建对象可以......
  • 读C#代码整洁之道笔记07_代码评审和集成测试
    1. 代码评审注意事项1.1. 始终保持代码评审的意识1.2. 保证代码构建成功1.3. 确保所有的测试都是通过的1.4. 注意YAGNI原则1.5. 检查重复代码1.6. 使用静态......
  • Kafka学习笔记(七):Kafka KRaft - Removing Zookeeper
    关于KafkaKRaft在2020年,ApacheKafka项目做开始着手移除Zookeeper依赖(KIP-500)当Kafka集群拥有超过10万个分区时,Zookeeper有扩展问题删除Zookeeper之后,ApacheKa......