zoukankan      html  css  js  c++  java
  • 用javascript实现完全的类(private、pubulic等)

      js是面向对象的,但是其不像java一样完全的面向对象,但是利用其灵活性,我们可以使用它进行高度的模拟,来看下面的代码:

    function Student(name){
    			this.name=name;//public变量
    			var id=Math.random()*100; //private变量
    			function setId(newId){
    				id=newId;
    			}//private方法
    			var that=this;
    			this.getId=function(){
    				///
    			}//特权方法
    		}
    		Student.prototype.getName=function(){
    			return this.name;
    		}//public方法
    

      是的,通过上面的方法便可以模拟出一个标准的类。ok,我们总结一下:

    • 私有变量 在对象内部使用'var'关键字来声明,而且它只能被私有函数和特权方法访问。
    • 私有函数 在对象的构造函数里声明(或者是通过var functionName=function(){...}来定义),它能被特权函数调用(包括对象的构造函数)和私有函数调用。
    • 特权方法 通过this.methodName=function(){...}来声明而且可能被对象外部的代码调用。它可以使用:this.特权函数() 方式来调用特权函数,使用 :私有函数()方式来调用私有函数。
    • 公共属性 通过this.variableName来定义而且在对象外部是可以读写的。不能被私有函数所调用。
    • 公共方法 通过ClassName.prototype.methodName=function(){...}来定义而且可以从对象外部来调用。
    • 原型属性 通过ClassName.prototype.propertyName=someValue来定义。
    • 静态属性 通过ClassName.propertyName=someValue来定义。(也就工具属性和方法)
    • 我认为可以简单的把privileged方法简单的看成是构造函数里的public方法,因为privileged方法可以被外界和public方法访问, 而它自身又可以访问private变量。
  • 相关阅读:
    delphi 使用条件编译指令
    [转] 编程之道 二
    delphi中XLSReadWrite控件的使用(1)简介
    delphi中XLSReadWrite控件的使用(2)delphi XE下安装
    墙纸自动换1.4算法分析
    Delphi中设置屏幕分辨率
    delphistringgrid另类自动向下滚屏
    【Hex 格式文件操作】一、intel hex格式文件说明
    INTEL hex文件格式
    [转]编程之道 一
  • 原文地址:https://www.cnblogs.com/dunken/p/4368784.html
Copyright © 2011-2022 走看看