JS笔记
来源:互联网 发布:ubuntu打开共享文件夹 编辑:程序博客网 时间:2024/06/08 17:06
js中prototype和constructor是非常重要和比较难理解的概念,下面通过示例来讲解一下prototype和constructor
我们在定义函数的时候,函数定义的时候函数本身就会默认有一个prototype的属性,而我们如果用new 运算符来生成一个对象的时候就没有prototype属性。我们来看一个例子,来说明这个
function Person(name){ this.name=name; this.showMe=function(){ alert(this.name); } }; Person.test = function(){ alert("test");}Person.prototype.from=function(){ alert('from'); } var one=new Person('js'); one.showMe();//js ---调用构造函数本身的方法,可以正常调用one.test();// undefined --- test属性属于构造函数本身,one是构造函数的示例对象无法访问构造函数的test方法one.constructor.test();//test -- one对象构造函数为内置原型对象为构造函数prototype 属性引用的那个原型对象的构造函数,可以访问该构造函数的test方法one.from();//from ---one对象的内置原型对象为构造函数prototype 属性引用的那个原型对象,调用原型对象的from方法
按照《悟透javascript》书中说的,new形式创建对象的过程实际上可以分为三步:
第一步是建立一个新对象(叫A吧);
第二步将该对象(A)内置的原型对象设置为构造函数(就是Person)prototype 属性引用的那个原型对象;
第三步就是将该对象(A)作为this 参数调用构造函数(就是Person),完成成员设置等初始化工作。
其中第二步中出现了一个新名词就是内置的原型对象,注意这个新名词跟prototype对象不是一回事,为了区别我叫它inobj,inobj就指向了函数Person的prototype对象。在person的prototype对象中出现的任何属性或者函数都可以在one对象中直接使用,这个就是javascript中的原型继承了。
阅读全文
1 0
- JS笔记
- js 笔记
- JS笔记
- JS 笔记
- Js笔记
- js笔记
- js笔记
- js笔记
- JS笔记
- js笔记
- js笔记
- js笔记
- JS笔记
- js笔记
- js笔记
- js 笔记
- JS笔记
- JS笔记
- 乐观锁、悲观锁
- mtk6570/6580/6737有关modem的总结
- ZOJ
- FZU 2229 Calculus Midterm
- Luogu 1169 棋盘制作:计数问题
- JS笔记
- 全局解释器锁(GIL)Cpython
- XListView+ViewPager
- UVa-11987 Almost union-find(带删除操作的并查集)
- 照片墙
- Elastic-Job 基础篇:基本信息及环境搭建
- 取反的最短路问题(Dijkstra)
- B-number[数位DP]
- 【华为机试】字符串加密