javascript是一门动态语言(动态语言Dynamic Programming Language:动态类型语言,意思就是类型的检查是在运行时做的,也就是常说的“弱类型”语言),没有类的概念,有class保留字,但不能用作变量名

原型:Javascript中的每一个对象都有一个内部私有的连接指向另一个对象,这个对象就是原对象的原型  注意:原型是一个对象,其他对象可以通过他实现属性继承

原型链:这个原型对象也有自己的原型,直到对象的原型为null为止(也就是没有原型),这种一级一级的链结构就称为原型链

javascript中对象:在javascript中,一个对象就是任何无序键值对的集合,如果它不是一个主数据类型(undefined,null,boolean,number,string),那它就是一个对象

在这里一旦当某个对象的原型所引用的对象的属性被定义,就可以被多个引用它的实例所继承,即这些实例对象的原型所指向的就是这个原型对象。

 

基于原型链的继承:

继承属性:

  javascript对象有两种不同的属性来源,一个是对象自身属性,另一是继承于原型链上的属性

例:

//假设有一个对象obj={a:1,b:2},并且obj所在的原型链如下:

//{a:1,b:2} ---> {b:3,c:4} ---> null

//a,b是obj自身的属性

//本例中,用“对象.[[Prototype]]”来表示这个对象的原型

alert(obj.a);

//输出1  证明a是obj自身的属性

alert(obj.b);

//输出2  证明b是obj自身的属性

//在obj.[[Prototype]]中还有一个‘b’属性,但它不会被访问到。这种情况称为“属性遮蔽”。

alert(obj.c);

//输出4  c不是obj自身的属性,但是obj.[[prototype]]的属性

alert(obj.d);

//输出undefined  d既不是obj自身的属性,也不是obj.[[prototype]]的属性

//也不是obj.[[prototype]].[[prototype]](即null)的属性,原型链已到顶端,没有d属性,返回undefined
View Code

相关文章:

  • 2022-12-23
  • 2022-02-25
  • 2022-12-23
  • 2021-07-17
  • 2021-08-02
  • 2021-07-06
  • 2021-09-14
  • 2021-11-03
猜你喜欢
  • 2021-07-31
  • 2022-12-23
  • 2021-06-06
  • 2021-10-20
  • 2022-12-23
  • 2021-09-25
  • 2021-05-23
相关资源
相似解决方案