js prototype原型面向对象编程详解GOOD
来源:互联网 发布:cerber 勒索软件 编辑:程序博客网 时间:2024/05/22 01:28
prototype只能用在类型上。
以下是一些关于类型和对象的例子,大家看完例子后可能更容易理解类型和对象之间的联系:
1、可以在类型上使用proptotype来为类型添加行为。这些行为只能在类型的实例上体现。
JS中允许的类型有Array, Boolean, Date, Enumerator, Error, Function, Number, Object, RegExp, String
Object.prototype.Method = function () {
obj.Method();
2、在实例上不能使用prototype,否则发生编译错误
obj.prototype.Property = 1; //Error
3、可以为类型定义“静态”的属性和方法,直接在类型上调用即可
4、实例不能调用类型的静态属性或方法,否则发生对象未定义的错误。
5、这个例子演示了通常的在JavaScript中定义一个类型的方法
function Aclass() {
this.Property = 1;
this.Method = function() {
alert(1);
}
}
var obj = new Aclass();
alert(obj.Property);
obj.Method();
6、可以在外部使用prototype为自定义的类型添加属性和方法。
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();
7、在外部不能通过prototype改变自定义类型的属性或方法。该例子可以看到:调用的属性和方法仍是最初定义的结果。
function Aclass() {
this.Property = 1;
this.Method = function() {
alert(1);
}
}
Aclass.prototype.Property = 2;
Aclass.prototype.Method = function() {
alert(2);
}
var obj = new Aclass();
alert(obj.Property);
obj.Method();
8、可以在对象上改变属性,也可以在对象上改变方法。(和普遍的面向对象的概念不同)
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();
9、可以在对象上增加属性或方法
function Aclass() {
this.Property = 1;
this.Method = function() {
alert(1);
}
}
var obj = new Aclass();
obj.Property2 = 2;
obj.Method2 = function() {
alert(2);
}
alert(obj.Property2);
obj.Method2();
10、这个例子说明了一个类型如何从另一个类型继承。
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();
11、这个例子说明了子类如何重写父类的属性或方法。
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();
以上例子中,关于通过类型实现重用方面,重要的有:
- js prototype原型面向对象编程详解GOOD
- js prototype原型面向对象编程详解
- js面向对象编程-prototype
- js prototype 详解 js实现面向对象
- JavaScript面向对象编程之prototype原型与继承
- js中的prototype原型对象
- JS 原型(prototype)详解
- js面向对象-原型
- JS 面向对象 原型
- 详解js面向对象编程
- JS面向对象编程详解
- 面向对象:原型(Prototype)模式
- JavaScript 面向对象之 原型-prototype
- [JS]JS面向对象编程——原型继承
- JS面向对像编程四—— prototype 对象
- JS中的prototype(面向对象)
- js面向对象之prototype
- js面向对象编程,一个完整原型的继承例子
- 给oracle 增加用户 授予权限
- Java开发平台中使用Opencv如何配置?
- 黑马程序员----------高新技术JDK新特性
- eclipse打开出现JVM terminated.Exit Code=-1错误的解决办法
- hdu 4565 So Easy!
- js prototype原型面向对象编程详解GOOD
- 粘贴勿
- Ansi和Unicode字符串区别
- hdu/hdoj 1054 Strategic Game
- android自定义menu,PopUpWindow弹出菜单
- HDU:1561 The more,The Better
- 像计算机科学家一样思考python2 笔记 - 文件和模块
- IOS学习之路十九(JSON与Arrays 或者 Dictionaries相互转换)
- jQuery验证控件jquery.validate.js使用说明+中文API