JavaScript能够实现的面向对象的特征有:
·公有属性(public field)
·公有方法(public Method)
·私有属性(private field)
·私有方法(private field)
·方法重载(method overload)
·构造函数(constructor)
·事件(event)
·单一继承(single inherit)
·子类重写父类的属性或方法(override)
·静态属性或方法(static member)

例子一(JavaScript中允许添加行为的类型):可以在类型上使用proptotype来为类型添加行为。这些行为只能在类型的实例上体现。 JS中允许的类型有Array, Boolean, Date, Enumerator, Error, Function, Number, Object, RegExp, String

Js代码
  1. <script type="text/javascript">
  2. Object.prototype.Property = 1;
  3. Object.prototype.Method = function ()
  4. {
  5. alert(1);
  6. }
  7. var obj = new Object();
  8. alert(obj.Property);
  9. obj.Method();
  10. </script>

例子二(prototype使用的限制):在实例上不能使用prototype,否则发生编译错误

Js代码
  1. <script type="text/javascript">
  2. var obj = new Object();
  3. obj.prototype.Property = 1; //Error
  4. //Error
  5. obj.prototype.Method = function()
  6. {
  7. alert(1);
  8. }
  9. </script>

例子三(如何定义类型上的静态成员):可以为类型定义“静态”的属性和方法,直接在类型上调用即可

Js代码
  1. <script type="text/javascript">
  2. Object.Property = 1;
  3. Object.Method = function()
  4. {
  5. alert(1);
  6. }
  7. alert(Object.Property);
  8. Object.Method();
  9. </script>

例子五():这个例子演示了通常的在JavaScript中定义一个类型的方法

Js代码
  1. <script type="text/javascript">
  2. function Aclass()
  3. {
  4. this.Property = 1;
  5. this.Method = function()
  6. {
  7. alert(1);
  8. }
  9. }
  10. var obj = new Aclass();
  11. alert(obj.Property);
  12. obj.Method();
  13. </script>

例子六(JavaScript中允许添加行为的类型):可以在外部使用prototype为自定义的类型添加属性和方法。

Js代码
  1. <script type="text/javascript">
  2. function Aclass()
  3. {
  4. this.Property = 1;
  5. this.Method = function()
  6. {
  7. alert(1);
  8. }
  9. }
  10. Aclass.prototype.Property2 = 2;
  11. Aclass.prototype.Method2 = function
  12. {
  13. alert(2);
  14. }
  15. var obj = new Aclass();
  16. alert(obj.Property2);
  17. obj.Method2();
  18. </script>

例子八():可以在对象上改变属性。(这个是肯定的)也可以在对象上改变方法。(和普遍的面向对象的概念不同)

Js代码
  1. <script type="text/javascript">
  2. function Aclass()
  3. {
  4. this.Property = 1;
  5. this.Method = function()
  6. {
  7. alert(1);
  8. }
  9. }
  10. var obj = new Aclass();
  11. obj.Property = 2;
  12. obj.Method = function()
  13. {
  14. alert(2);
  15. }
  16. alert(obj.Property);
  17. obj.Method();
  18. </script>

例子九():可以在对象上增加属性或方法

Js代码
  1. <script type="text/javascript">
  2. function Aclass()
  3. {
  4. this.Property = 1;
  5. this.Method = function()
  6. {
  7. alert(1);
  8. }
  9. }
  10. var obj = new Aclass();
  11. obj.Property3 = 3;
  12. obj.Method3 = function()
  13. {
  14. alert(3);
  15. }
  16. alert(obj.Property3);
  17. obj.Method3();
  18. </script>

例子十(如何让一个类型继承于另一个类型):这个例子说明了一个类型如何从另一个类型继承。

Js代码
  1. <script type="text/javascript">
  2. function AClass()
  3. {
  4. this.Property = 1;
  5. this.Method = function()
  6. {
  7. alert(1);
  8. }
  9. }
  10. function AClass2()
  11. {
  12. this.Property2 = 2;
  13. this.Method2 = function()
  14. {
  15. alert(2);
  16. }
  17. }
  18. AClass2.prototype = new AClass();
  19. var obj = new AClass2();
  20. alert(obj.Property);
  21. obj.Method();
  22. alert(obj.Property2);
  23. obj.Method2();
  24. </script>

例子十一(如何在子类中重新定义父类的成员):这个例子说明了子类如何重写父类的属性或方法。

Js代码
  1. <script type="text/javascript">
  2. function AClass()
  3. {
  4. this.Property = 1;
  5. this.Method = function()
  6. {
  7. alert(1);
  8. }
  9. }
  10. function AClass2()
  11. {
  12. this.Property2 = 2;
  13. this.Method2 = function()
  14. {
  15. alert(2);
  16. }
  17. }
  18. AClass2.prototype = new AClass();
  19. AClass2.prototype.Property = 3;
  20. AClass2.prototype.Method = function()
  21. {
  22. alert(4);
  23. }
  24. var obj = new AClass2();
  25. alert(obj.Property);
  26. obj.Method();
  27. </script>

js中prototype用法(转)相关推荐

  1. js中prototype用法

    prototype 是在 IE 4 及其以后版本引入的一个针对于某一类的对象的方法,而且特殊的地方便在于:它是一个给类的对象添加方法的方法!这一点可能听起来会有点乱,别急,下面我便通过实例对这一特殊的 ...

  2. js中prototype,constructor的理解

    连看4篇前辈的文章,记录一些知识点 Javascript继承机制的设计思想 Javascript 面向对象编程(一):封装 Javascript面向对象编程(二):构造函数的继承 Javascript ...

  3. js中every用法_JS中every()和some()的用法

    every()与some()方法都是JS中数组的迭代方法. every()是对数组中每一项运行给定函数,如果该函数对每一项返回true,则返回true. some()是对数组中每一项运行给定函数,如果 ...

  4. JS中Prototype属性解释及常用方法

    1.prototype的定义 javascript中的每个类都有prototype属性,其prototype属性的解释是:返回对象类型原型的引用.每一个构造函数都有一个属性叫做原型.这个属性非常有用: ...

  5. Js中Promise用法

    promise是用来解决Js中的异步问题的.基本结构如下: function a() {return new Promise((resolve, reject) => {//dosomethin ...

  6. js中typeof用法详细介绍

    本文章来介绍在js使用中的一个函数typeof用法, typeof 运算符把类型信息当作字符串返回,包括有大家常有变量类型. typeof 运算符把类型信息当作字符串返回.typeof 返回值有六种可 ...

  7. js中 slice 用法用法全解析

    slice 工作原理 在深入研究一些更高级的用法之前,让我们看一下 slice 方法的基础知识.如MDN文档, slice 是数组上的一个方法,它最多有两个参数: arr.slice([begin[, ...

  8. js中every用法_every方法

    确定数组的所有成员是否满足指定的测试. ## 语法 ~~~ array1.every(callbackfn[, thisArg]) ~~~ ## 参数 |参数|定义| |--|--| |array1| ...

  9. javascript --- js中prototype、__proto__、[[Propto]]、constructor的关系

    首先看下面一行代码: function Person(name){this.name = name; } var person1 = new Person; console.log(person1._ ...

最新文章

  1. elasticdump安装_elasticdump备份及恢复es数据
  2. 去除inline-block元素间间距,比较靠谱的两种办法
  3. 推荐两个插件DPack, Resharper
  4. python3连接mysql数据库_python3.4连接mysql数据库
  5. linux脚本里调执行命令,使用shell的-n/-x/-x执行选项调试Shell脚本
  6. javascript设计模式之外观模式
  7. python装饰器作用噜咕_python 装饰器的实际作用有哪些
  8. 云图说|高效管理华为云SAP的“秘密武器”
  9. SAP License:全球十大主流ERP厂商,看看你是不是在用
  10. maven 本地仓库的配置
  11. 荣耀路由器外界硬盘与win10
  12. 送书 | 图解机器学习—算法原理与Python语言实现
  13. 井字棋游戏的实现和注意细节
  14. iOS-内购注意 沙盒二次验证
  15. 文献阅读(77)稀疏跳零结构(1)
  16. MyBatis一对多,多对一,多对多
  17. asp.net 实现word在线阅读
  18. 阿里云ecs服务器(Ubuntu)配置图形界面并远程桌面连接
  19. JSON对象数组去重
  20. 郊区春游(状压dp)

热门文章

  1. 输出整数各位数字 (15 分)
  2. ubuntu无法打开Firefox
  3. python 网页爬虫作业调度_第3次作业-MOOC学习笔记:Python网络爬虫与信息提取
  4. mysql树状查询优化_解析SQL中树形分层数据的查询优化
  5. 计算机打印中 进纸盘2,软件、计算机和打印机接口问题-HP.PDF
  6. 《c++ const 详细总结》--转载
  7. 【bzoj5110】[CodePlus2017]Yazid 的新生舞会 Treap
  8. JDBC模板对象是多例的
  9. geolocation/ 百度地图api Geolocation 定位当前城市信息
  10. HTML5八大特性助力移动WebApp开发