js 类与构造函数

java中类的概念:
把具有共同性质的事物归结为一类,得出一个抽象的概念——类。 在面向对象的编程语言中,类是一个独立的程序单位,是具有相同属性和方法的一组对象的集合。类的概念使我们能对属于该类的全部对象进行统一的描述。
js 中的类:

js是一种弱类型语言,js本身是不支持"类"的,但可以模拟出"类";

可以模仿类的原因
类的所有实例对象都从同一个原型对象上继承属性
原型对象是类的唯一标识:当且仅当两个对象继承自同一个原型对象时,他们才是属于同一个类的实例。所以初始化对象的状态的构造函数不能作为类的标识。
用构造函数模仿类
构造函数会自动创建对象,然后将构造函数作为这个对象的方法来调用一次,最后返回这个新对象。
理解new 操作符:

function F(){

}
new F();
经历的步骤:
创建一个空对象,作为将要返回的实例对象
将空对象的原型指向构造函数的prototype属性,也就是F构造函数的prototype属性。
将空对象赋值给构造函数内部的this关键字,也就是this关键字会指向实例对象。
开始执行构造函数内部的代码。
理解constructor属性:

任何javascript函数都可以用来做构造函数,并且调用构造函数是需要用到一个prototype属性的,因此每个javascript函数都在动拥有一个prototype属性。这个属性的值是一个对象,这个对象包含唯一一个不可美居枚举属性constructor,constructor属性的值是一个函数对象。
var f = function(){}; //这是一个函数对象
var p = f.prototype; //这是与f相关联的原型对象
var c = p.constructor; //这是与原型相关联的函数
c === f //=>true:对于任意函数f.prototype.constructor===f

通过Object.getPrototypeOf() 可以得到:
f.proto === F.prototype => true

ES6中类就是根据这个原理来的:

class F {
constructor(name)
this.name = 'Base';
}
getName() {
//==>F.prototype.getName=function(){}
}
}

git地址:github.com/zshsats/js/…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值