this指向
作者:互联网
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// this
// 解析器在调用函数每次都会向函数内部传递进一个隐含的参数
// 这个隐含的参数就是this this指向的是一个对象、
// 这个对象我们称位函数执行的上下文对象
// 根据函数的调用方式的不同,this会指向不同的对象
// 1 以函数的形式调用时this指向window
// 2 以方法的形式调用时this指向调用方法的对象
// function fun(a, b) {
// // console.log(a, b);
// console.log(this); //Window {window: Window, self: Window, document: document, name: "", location: Location, …}
// }
// // fun(1, 2);//打印window
// //创建一个对象
// var obj = {
// name: 'liuyun',
// sayName: fun
// };
// var obj1 = {
// name: 'zhangxueyou',
// sayName: fun
// };
// console.log(obj.sayName() == fun()); //true
// obj.sayName(); //打印obj对象
// obj1.sayName(); //打印obj2对象
// 创建一个变量
var name = '全局变量';
// 创建一个函数fun()
function fun() {
console.log(this); //如果不是this就需要每次调用时候修改this 如obj1.name 或者是 obj2.name
}
//创建一个对象
var obj1 = {
name: 'liuyun',
sayName: fun
}
var obj2 = {
name: 'jcw',
sayName: fun
}
obj1.sayName(); //obj1
obj2.sayName(); //obj2
</script>
</body>
</html>
标签:obj1,obj2,name,指向,sayName,var,fun 来源: https://blog.csdn.net/weixin_52019215/article/details/113775075