[JS]js中prototype属性和应用说明附实例
js中prototype属性和应用说明附实例
[JS]js中prototype属性和应用说明附实例
- <html>
- <head>
- <title>JS学习</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- </head>
- <body>
- js prototype 详解
- <script>
- //例子一
- /*Object.prototype.Peoperty = 1;
- Object.prototype.Method = function()
- {
- alert("this method 1");
- }
- var obj = new Object();
- alert(obj.Peoperty);
- obj.Method();*/
- //可以在类型上使用ptoptotype来为类型添加行为,这些行为只能在类型的实例上体现
- //JS中允许的类型有Array, Boolean, Date, Enumerator, Error, Function, Number, Object, RegExp, String
- //例子二
- /*var obj = new Object();
- obj.prototype.Property = 1;
- obj.prototype.Mothod = function()
- {
- alert("1");
- }*/
- //在实例上不能使用prototype,否则发生编译错误
- //例子三
- /*Object.Property = 1;
- Object.Method = function()
- {
- alert("this method");
- }
- alert(Object.Property);
- Object.Method();*/
- //可以为类型定义"静态"的属性和方法,直接在类开
- //例子四
- /*//MyObject.Property = 1;
- //只能使用Object关键字才行
- Object.Property = 1;
- Object.Method = function()
- {
- alert("this MyObject");
- }
- //var obj = new MyOjbect();
- //alert(obj.Property);
- //obj.Method();
- Object.Method();*/
- //Error 实例不能调用类型的静态属性或方法,否则发生对像未定义的错误
- //实例五
- /*function Aclass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert("Aclass Method");
- }
- }
- var obj = new Aclass();
- alert(obj.Property);
- obj.Method();*/
- //这个例子演示了通常的在JavaScript中定义的一个类型的方法
- //例子六
- /*function Aclass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert("Aclass Method");
- }
- }
- Aclass.prototype.Property2 = 2;
- Aclass.prototype.Method2 = function()
- {
- alert("Aclass Method2");
- }
- var obj = new Aclass();
- alert(obj.Property2);
- obj.Method2();*/
- //可以在外部使用prototype为自定义的类型添加属性和方法
- //例子七
- /*function Aclass()
- {
- this.Peoperty = 11;
- this.Method = function()
- {
- alert("this Method");
- }
- }
- Aclass.prototype.Peoperty = 22;
- Aclass.prototype.Method = function()
- {
- alert("Aclass Method2");
- }
- var obj = new Aclass();
- alert(obj.Property); //我测试的结果为: 属性是可以在外部进行修改的
- obj.Method(); //但方法在外部修改不起作用*/
- //后面发现单词写错了
- //在外部不能通过prototype改变自定义类型的属性和方法
- //该例子可以看到,调用的属性和方法仍是最初定义的结果
- //===================================================
- //例子八
- /*function Aclass()
- {
- this.Peoperty = 11;
- this.Method = function()
- {
- alert("this Method");
- }
- }
- var obj = new Aclass();
- obj.Peoperty = 22;
- obj.Method = function()
- {
- alert("this Method2");
- }
- alert(obj.Peoperty);
- obj.Method();*/
- //可以在对像上改变属性
- //也可以在对像上改变方法(和普通的面向对像的不同)
- //例子九
- /*function Aclass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert("this Method");
- }
- }
- var obj = new Aclass();
- obj.Property2 = 22;
- obj.Method2 = function()
- {
- alert("this Method2");
- }
- alert(obj.Property2);
- obj.Method2();*/
- //可以在对像上增加属性或方法
- //例子十
- /*function Aclass()
- {
- this.Property = 1;
- this.Method = function()
- {
- alert("this Method");
- }
- }
- function Aclass2()
- {
- this.Property2= 22;
- this.Method2 = function()
- {
- alert("this Method2");
- }
- }
- Aclass2.prototype = new Aclass(); //Aclass2继承Aclass类型
- var obj = new Aclass2();
- alert(obj.Property);
- obj.Method();
- alert(obj.Property2);
- obj.Method2();*/
- //说明了一个类型如何从另一个类型继承
- //例子十一
- function Aclass()
- {
- this.Property = 1;
- this.Method = function(){
- alert("this Method");
- }
- }
- function Aclass2()
- {
- this.Property2 = 22;
- this.Method2 = function(){
- alert("this Method2");
- }
- }
- Aclass2.prototype = new Aclass();
- Aclass2.prototype.Property = 33;
- Aclass2.Property.Method = function()
- {
- alert("this Method");
- }
- alert(obj.Property);
- obj.Method();
- //这个例子说明了子类如何重写父类的属性或方法
- //JavaScript能够实现的面向对像的特征有
- //公有属性(public field)
- //公有方法(public Method)
- //私有属性(private field)
- //私有方法(provate Method)
- //方法重载(method overload)
- //构造函数(constructor)
- //事件(event)
- //单一继承(single inherit)
- //子类重写父类的属性或方法(override)
- //静态属性或方法(static member)
- </script>
- </body>
- </html>
热门文章推荐
- [JS]window.location获取url各项参数详解
- [JS]jQuery,javascript获得网页的高度和宽度
- [JS]视频弹窗视频弹出层videoLightBox(含三种播放器的用法)
- [JS]JS提交中文encodeURI两次转码
- [JS]js版方面encodeURI转码和decodeURI解码的用法实例
- [JS]js取当前机子的时间戳实例
- [JS]AES加密(基于crypto-js)PHP后端解密
- [JS]data:image/png;base64写法的用途及说明
请稍候...