浅谈构造函数与继承

今天上午我研究了一下构造函数与继承

在阮一峰老师的日志中这样子记载:构造函数是指 普通函数中包含this变量。对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例对象上。

 //构造函数
 2 function Egperson (name,age) {
 3     this.name = name;
 4     this.age = age;
 5     this.sayName = function () {
 6         alert(this.name);
 7      }
 8 }
 9 var person = new Egperson('mike','18'); //this-->person
10 person.sayName();  //'mike'

 //普通函数
14 function egPerson (name,age) {
15     this.name = name;
16     this.age = age;
17     this.sayName = function () {
18         alert(this.name);
19      }
20 }
21 egPerson('alice','23'); //this-->window
22 window.sayName();  //'alice'

我们可以看到的是普通函数中也包含this这个关键变量,所以有this变量的不一定是构造函数。

但是恰恰应该是更要符合后面两点生成一个新的实例,并且this变量指向新的实例,这两点我觉得更是应该符合构造函数特点。


二、关于继承

在Java中会有通过class实现子类继承父类的说法,但是在js中没有class类。

但是每一个构造函数都有一个prototype属性,而这一个属性使函数和函数之间可以共享一个属性。

 function Cat(name,color){

    this.name = name;

    this.color = color;

  }

  Cat.prototype.type = "猫科动物";

  Cat.prototype.eat = function(){alert("吃老鼠")};


部分转载自:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html

                     https://www.cnblogs.com/cindy79/p/7245566.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值