前端 js 面向对象

相信很多学习计算机编程的人,或多或少都会接触到面向对象。那么,对象究竟是什么呢?

对象:类的一个实例,包含了一系列的属性与方法。通俗易懂来说,万物皆对象,我们每一个人,都是一个对象,我们会学习,会动脑,会跑会跳,这些都是行为(也就是方法);另外,我们的身高、体重等就可以看做是属性。

面向对象中,我们经常会听到 “类” 这个字,都会想到 “类别” ,“类型” ,那么它到底是什么呢?

类:类是对现实生活中一类具有共同特征的事物的抽象。简单来说,人类就是一个类。而类中,有无数个对象。

当然,在java语言中,通常只要看到 “class”,就知道这是一个类,那么在前端中,我们该如何定义一个对象呢?

平时,我们可以以下面这种方式来创建对象:

var  str = "hello,欢迎学习面向对象!"; 

var str = new String("hello,欢迎学习面向对象!");

 接下来,我们要用面向对象的方法,来为创建好的对象添加一个属性:

String.prototype.age = 16;                   // prototype表示该函数的原型    点击详细资料

 添加完属性,我们再来一个方法:

 String.prototype.weather = function(){
         alert("It's rainning...");
   }
     str.weather();  //调用weather

 学会了创建方法,我们来看一个小例子:

        function Leo(name,age){  //构造函数
        this.name = name;    // name属性
        this.age = age;   // age属性
        
        // 用面向对象的方法创建一个stu方法
        Leo.prototype.stu = function(){
            console.log(this.name + "今年" + this.age,this);
        } 
    }
        // 创建方法weight
        Leo.prototype.weight = function(){
            alert("体重正常!!!");
        }
        // 创建方法height
        Leo.prototype.height = function(){
            return "身高183cm";
        }  


    var student = new Leo("小阳",23);   //创建student对象
        student.stu();    //调用stu方法
        student.weight();  //调用weight方法
        console.log(student.height());  //调用height方法,并在控制台输出

这个例子中,提到了一个关键字 “this”:

this的指向:

1. 在普通函数下  this指向的是  window。

2.  有事件源指向事件源本身。

改变this的指向:

1. call( )

例如: function  a(){
    console.log(this);
}
a.call(1);   

2. apply( )

例如: function  a(x,y,z){
     console.log(this,x,z,y)
}
a.apply(1,[2,3,4]);

在这里,我们要区分一下call( )和apply( ):

 1、调用一个对象的一个方法,用另一个对象替换当前对象。

 2、传入的参数列表形式不同:

             call:它可以接受多个参数,第一个参数与apply一样,后面则是一串参数列表。

                   即:Leo1.call(this,name,age);

             apply:最多只能有两个参数——新this对象和一个数组argArray。

                   即:Leo1.apply(this,[name,age]);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值