上下文是指this这个值的作用域
this在对象中两种调用的方法
1,对象打点函数
this的上下文指哪一个对象,是由调用函数的方式决定的。
<script>
var object= {
name:"xiaoming",
sex:"男",
jieshao:function(){
// this是指object
console.log(this == object);
console.log("我的名字是"+this.name+"是"+this.sex+"生");
}
}
// 第一种调用方法
// 我的名字是xiaoming是男生
object.jieshao();
// 第二种调用方法,this 是window
// 我的名字是是undefined生
// 将键值赋值给变量,this就没有上下文了
var jieshao1 = object.jieshao;
jieshao1();
</script>
上下文规则
产生上下文的情况:数组,对象,DOM,其他上下文基本指的是window。
知道this代指的对象
call和apply
apply要和arguments搭配使用
<script>
function sum(a,b){
var sum = this.c+this.e+this.m+a+b;
console.log(sum);
}
var xiaoming ={
c:98,
e:120,
m:56,
}
// 指定this的两个函数的区别
sum.apply(xiaoming,[22,11]);
// sum.call(xiaoming,22,11);
</script>
构造函数new
<script>
// 构造函数的名称一般大写字母开头,创建类
function People(name,age,sex){
this.name = name;
this.age = age;
this.sex =sex;
this.jieshao = function(){
console.log("大家好我是"+this.name+"我今年"+this.age+"岁了"+"是"+this.sex+"生");
}
}
// 创建实例对象
var xiaoming = new People("xiaoming",12,"男");
console.log(xiaoming);
</script>