JS方法中的this

在js中,this表示当前对象,

“谁”调用了当前函数,“this”就指向了“谁”

1.之前,创建的对象中的属性是动态添加的,如果我们想在创建对象的同时,自动拥有某些属性或方法,该如何实现?
我们的习惯:在相同的类下创建的对象需要有相同的属性和方法

语法:
Function 类(){
this.属性=值;
}

示例1:

function Person(){
this.name = 'zhangsan';
this.age = 30;
}
var p1 = new Person();
var p2 = new Person();
alert(p1.name+p1.age);
alert(p2.name+p2.age);

创建的这两个对象,它们的属性是一样的,但值也是相同的

示例2:

function Person(p_name,p_age){
this.name = p_name;
this.age = p_age;
}
var p1 = new Person('zhangsan',30);
var p2 = new Person('lisi',20);
alert(p1.name+p1.age);
alert(p2.name+p2.age);

在构造器中定义形参,实例化对象时,通过构造函数传参传递数据

2. this的深入理解
函数是由对象调起来的,在函数中的this就指向了这个对象
在js中,如何判断一个函数是以面向过程调用还是以面向对象形式来调用?
所有函数都是面向对象调用,普通函数的调用是由window对象调用的

function Person(p_name,p_age){
this.name = p_name;
this.age = p_age;
alert(typeof this);
alert(this.constructor);
}
var p1 = new Person('zhangsan',30);

上面代码中的this,指向p1对象
在JS,每一个页面也有一个this,这个this指向“谁“

<script>
    /*alert(typeof this);
    alert(this.constructor);*/
    var i=10;       //window.i=10;
    this.i=20;      //this.i   window.i=20;
    alert(window.i);    // window.i  this.i  i
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,270评论 0 4
  • title: js面向对象date: 2017年8月17日 18:58:05updated: 2017年8月27日...
    lu900618阅读 581评论 0 2
  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,703评论 0 6
  • 在高价值区,做正确的事 处处有机会,就等于处处没机会;竞争越是开放,个人越需要打磨深思熟虑后做选择的战略能力——找...
    AKE训练营阅读 1,256评论 0 5
  • 突然心情有些不美丽,不知道为什么
    小静520阅读 184评论 0 1