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代码
- <script type="text/javascript">
- Object.prototype.Property = 1;
- Object.prototype.Method = function ()
- {
- alert(1);
- }
- var obj = new Object();
- alert(obj.Property);
- obj.Method();
- </script>
例子二(prototype使用的限制):在实例上不能使用prototype,否则发生编译错误
Js代码
- <script type="text/javascript">
- var obj = new Object();
- obj.prototype.Property = 1; //Error
- //Error
- obj.prototype.Method = function()
- {
- alert(1);
- }
- </script>
例子三(如何定义类型上的静态成员):可以为类型定义“静态”的属性和方法,直接在类型上调用即可
Js代码
- <script type="text/javascript">
- Object.Property = 1;
- Object.Method = function()
- {
- alert(1);
- }
- alert(Object.Property);
- Object.Method();
- </script>
例子五():这个例子演示了通常的在JavaScript中定义一个类型的方法
Js代码
- <script type="text/javascript">
- function Aclass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert(1);
- }
- }
- var obj = new Aclass();
- alert(obj.Property);
- obj.Method();
- </script>
例子六(JavaScript中允许添加行为的类型):可以在外部使用prototype为自定义的类型添加属性和方法。
Js代码
- <script type="text/javascript">
- function Aclass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert(1);
- }
- }
- Aclass.prototype.Property2 = 2;
- Aclass.prototype.Method2 = function
- {
- alert(2);
- }
- var obj = new Aclass();
- alert(obj.Property2);
- obj.Method2();
- </script>
例子八():可以在对象上改变属性。(这个是肯定的)也可以在对象上改变方法。(和普遍的面向对象的概念不同)
Js代码
- <script type="text/javascript">
- function Aclass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert(1);
- }
- }
- var obj = new Aclass();
- obj.Property = 2;
- obj.Method = function()
- {
- alert(2);
- }
- alert(obj.Property);
- obj.Method();
- </script>
例子九():可以在对象上增加属性或方法
Js代码
- <script type="text/javascript">
- function Aclass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert(1);
- }
- }
- var obj = new Aclass();
- obj.Property = 2;
- obj.Method = function()
- {
- alert(2);
- }
- alert(obj.Property);
- obj.Method();
- </script>
例子十(如何让一个类型继承于另一个类型):这个例子说明了一个类型如何从另一个类型继承。
Js代码
- <script type="text/javascript">
- function AClass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert(1);
- }
- }
- function AClass2()
- {
- this.Property2 = 2;
- this.Method2 = function()
- {
- alert(2);
- }
- }
- AClass2.prototype = new AClass();
- var obj = new AClass2();
- alert(obj.Property);
- obj.Method();
- alert(obj.Property2);
- obj.Method2();
- </script>
例子十一(如何在子类中重新定义父类的成员):这个例子说明了子类如何重写父类的属性或方法。
Js代码
- <script type="text/javascript">
- function AClass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert(1);
- }
- }
- function AClass2()
- {
- this.Property2 = 2;
- this.Method2 = function()
- {
- alert(2);
- }
- }
- AClass2.prototype = new AClass();
- AClass2.prototype.Property = 3;
- AClass2.prototype.Method = function()
- {
- alert(4);
- }
- var obj = new AClass2();
- alert(obj.Property);
- obj.Method();
- </script>
相关推荐
PrototypeJS 是一个广泛使用的JavaScript库,它为浏览器端的JavaScript编程提供了一系列强大的工具和功能,大大简化了DOM操作、事件处理、Ajax交互等任务。在标题中提到的"prototype1.4.js"和"prototype1.5.js"是...
在这个"prototype 1.6.0.2.js+使用DEMO例子"的压缩包中,包含了该版本的核心库文件和相关示例,旨在帮助开发者更好地理解和应用Prototype。 首先,`prototype-1.6.0.2.js`是Prototype的核心脚本文件。这个文件包含...
在这个例子中,我们向`AjaxServlet`发送一个POST请求,携带参数`key=value`。如果请求成功,`onSuccess`回调会被调用,我们可以在这里解析服务器返回的数据(通常是JSON或XML格式),并更新前端的DOM元素。如果请求...
在这个例子中,`Circle`的`prototype`被设置为一个新的`Shape`实例,使得`Circle`的所有实例都可以访问`Shape`的属性和方法。 3. **动态修改prototype** `prototype`是动态的,可以在运行时添加或删除属性。这...
**解析**:在这个例子中,我们定义了两个函数`test1`和`test2`。`test1`函数通过调用`$('myDiv')`获取ID为`myDiv`的元素,并弹出该元素的`innerHTML`属性。`test2`函数则通过调用`$$('myDiv', 'myOtherDiv')`获取多...
8. **JSON支持**:在1.6版本中,Prototype对JSON(JavaScript Object Notation)进行了支持,提供了`Object.toJSON()`和`JSON.parse()`方法,便于数据序列化和反序列化。 9. **兼容性**:Prototype 1.6致力于提高跨...
在这个例子中,`Person`函数的`prototype`被赋予了一个`sayHello`方法。当我们创建`Person`的实例时,这个实例就可以调用`sayHello`方法: ```javascript let p = new Person(); p.sayHello(); // 输出 "Hello, I ...
4. 动画效果:如果想要增加动画效果,可以在`update`方法中添加延迟和过渡效果,比如使用`setTimeout`和CSS的`transition`属性。 三、进一步扩展 - **事件监听**:添加事件监听器,让进度条在特定事件(如文件上传...
在`prototype.js开发手册.pdf`中,你可以找到详细的API文档和使用示例,帮助你全面掌握PrototypeJS的使用。而`prototypeDemo`可能是包含了一些实践示例的代码文件,通过这些示例,你可以更直观地了解PrototypeJS在...
在这个例子中,`Person.prototype`被用来添加了`name`属性和`sayHello`方法,这两个成员被所有`Person`实例共享。 接下来,我们要了解`__proto__`和`[[Prototype]]`。虽然`__proto__`是一个非标准的属性,但在许多...
在本例中,我们使用Prototype.js,这是一个轻量级的JavaScript库,提供了丰富的DOM操作接口和Ajax功能,简化了Ajax应用的开发。 Prototype.js库提供了许多方便的函数,如Ajax.Request和Ajax.Updater,它们是执行...
本文实例讲述了JS中prototype的用法。分享给大家供大家参考。具体分析如下: JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 ...
首先,了解`prototype`的基本原理:每个函数(在JavaScript中,函数也是对象)都有一个名为`prototype`的属性,这个属性是一个对象,用于定义实例化该函数的对象所能共享的属性和方法。当我们创建一个新对象时,该...
在这个例子中,只有`cls1`有`toString`方法,而`new MyClass("zhang", 10)`创建的`cls2`则没有。 `prototype`对象有一个内置的`constructor`属性,它默认指向创建它的构造函数。这意味着,如果我们不手动修改`...
本篇将围绕“js经典使用例子”深入探讨JavaScript的一些关键知识点。 1. **DOM操作**:Document Object Model(DOM)是HTML和XML文档的结构化表示,JavaScript通过DOM API可以对网页元素进行增删改查。例如,通过`...
在压缩包中的`js`文件很可能包含了示例代码,演示了如何使用`prototype`来构建对象和实现继承。 总结来说,`prototype`是JavaScript中实现面向对象编程的关键,它允许我们定义对象的共享行为,并通过原型链实现对象...
在这个例子中,`Developer`类继承自`Person`类,通过调用`Person.prototype.initialize`确保了初始化过程。`Developer`类还添加了一个新的方法`code`。 Prototype.js 文件是Prototype框架的核心库,包含了所有这些...
这些实现其实方法都可以用JavaScript中的引用和变量作用域结合prototype来解释。 2、简单的例子 代码如下: var Blog = function( name, url ){ this.name = name; this.url = url; }; Blog.prototype.jumpurl = ”; ...
通过学习Prototype.js,不仅可以掌握JavaScript的高级用法,还可以了解到面向对象编程的一些概念,这对于提升Web应用的交互性和用户体验至关重要。 总的来说,Prototype.js是一个强大的JavaScript工具库,它通过...