zoukankan      html  css  js  c++  java
  • 关于js 继承

    js是基于原型继承的语言,意味着对象(类对象)可以直接从其他对象继承属性,而不是基于类的,该语言是无类别的。

    这偏离当今编程语言的主流,大多数语言继承都是基于类的,尽管原型继承有着强大的表现力,但并不被广泛理解。

    js本身对其原型的本质也缺乏信心,所以提供了一套与基于类的语言类似的对象构建语法

    js原型继承的动态本质,新的方法或属性被添加到类对象的原型时,将被反映到所有的实例上,即便这个实例在添加之前(这在其他语言里就是通过类来实现的,因此

    js是基于原型的继承)

    荷兰程序员Gabor de Mooij提出了一种不使用this和prototype,代码部署起来非常简单的新方法,他称这种方法为"极简主义法"(minimalist approach)。

    //js面向对象模拟,极简主义,避免使用prototype
    
    var Cat={
        CreatNew:function(name){
            var cat={};
            cat.name=name;
            cat.say=function(){
                alert("Hello world !"+this.name);
            }
            return cat;
        }
    };
    //cat1=Cat.CreatNew("Tom");
    //cat1.say();
    
    //继承
    var CfCat={
        CreatNew:function(name,age){
            var cat=Cat.CreatNew(name);
            var myselfdata='私有数据';//私有属性
            cat.age=age;
            cat.sayage=function(){
                alert("my age is "+this.age);
            };
            cat.getMySelfdata=function(){alert(myselfdata);};
            return cat;
        }
    };
    var cat2=CfCat.CreatNew("coofecat",22);
    /*cat2.say();
    cat2.sayage();
    cat2.getMySelfdata();
    alert(cat2.myselfdata);*/
    
    //实例共享数据
    
    var Person={
        Gender:"男",
        CreateNew:function(name){
            var cat={};
            cat.name=name;
            cat.sayGender=function(){
                alert(this.name+" is "+Person.Gender);
            };
            cat.changeGender=function(gender){
                Person.Gender=gender;
            };
            return cat;
        }
    
    }
    var p1=Person.CreateNew("jack");
    var p2=Person.CreateNew("tom");
    p1.sayGender();
    p2.sayGender();
    p2.changeGender("女");
    p1.sayGender();
    p2.sayGender();

     

  • 相关阅读:
    使用js给数组去重的3种常用方法
    JS操作DOM元素属性和方法
    打开新窗口并运行代码
    html5 中doctype 格式
    html htm shtml 区别
    RML Utilities for SQL Server工具
    [转载]项目经理和产品经理的区别
    sublime text 3 快捷键大全以及配置编译环境
    CSS的四种引入方式
    软件系统需求分析策划方案
  • 原文地址:https://www.cnblogs.com/aveenzhou/p/2751349.html
Copyright © 2011-2022 走看看