• 如何用Javascript写一个Class?


    记得前面某次面试被问到此问题,一直以来因为对JS的不重视+一知半解,所以当时就懵了~

    最近Google了下,找到以下几种写Class的方式:

    1 JS因为不是OO语言,所以没有Class的概念,都是通过ProtoType的方式实现的。

    var namedClass = Class.create({
        initialize: function(name) {
            this.name = name;
        }
     
        getName: function() {
            return this.name;
        }
    });
    var instance = new namedClass('Foobar');

    2 也可以这样写

    function MyClass(){
    }
    MyClass.prototype.aFunction(){ 
    }
     
    var instance = new MyClass();
    instance.aFunction();

    3 带属性和方法的Class

    function MyClass () {
       //reference to this
       var self = this;
       //private member variable
       var privateVar = "My Private Variable";
     
       //public member variable
       this.publicVar = "My Public Variable";
     
       //private member function
       var privateFunction = function () {
          self.publicVar += " Modified By A Private Fucntion";
          alert( self.publicVar );
       }
    }
     
    //create an instance
    var oClass = new MyClass();
     
    //run a private member function
    oClass.privateFunction();   //private function is undefined
     
    //get a private member var
    alert( oClass.privateVar );   //private var is undefined

    4 带静态变量和静态方法的Class:

    function MyClass () {
       //...
    }
    //declare a static member
    MyClass.staticVar = "My static variable";
     
    //declare a static function
    MyClass.staticFunction = function ( pInput ) {
       return new MyClass( MyClass.staticVar , pInput );
    }
    //create an instance
    var oClass = new MyClass();
    //run a static function (NO access to private or public)
    oClass.staticFunction( 9 );  //staticFunction is undefined on an instance
    //run a privileged member function on the class
    MyClass.privilegedFunction();   //The function runs

    5 带特权(privileged)变量和方法的Class:

    function MyClass () {
       //private member variable
       var privateVar = "My Private Variable";
       //privileged member function
       this.privilegedFunction = function () {
          alert( privateVar );
       }
    }
    //create an instance
    var oClass = new MyClass();
    //run a privileged member function
    oClass.privilegedFunction();   //Output: alerts the value of the private var

  • 相关阅读:
    zipfile模块——读取(查看)zip压缩文件
    line[:1]和split(',')
    csv文件——简单读操作01
    读取文件内容——读取一个二进制文件,然后保存到另外一个文件
    zipfile模块——从zip文件中 解压缩
    读写操作文件——open()函数与读写文件01
    文件的操作
    csv文件——简单读操作01
    读写操作文件——open()函数与读写文件02
    读取文件内容——open函数
  • 原文地址:https://www.cnblogs.com/4kapple/p/2212373.html
Copyright © 2020-2023  润新知