zoukankan      html  css  js  c++  java
  • js面向对象编程

    1、javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。

    2、因为JavaScript中没有class,所以有人把类也成为原型对象。

    function Cat(){

    }

    Cat();//函数

    var cat1=new Cat(); //

    js中的对象的属性可以动态添加;属性没有限制。

    类(原型对象)--如何自定义类(原型对象)和对象:

    1、工厂方法--使用new Object创建对象并添加属性;

    2、使用构造函数来定义类(原型对象)

    3、使用prototype

    4、构造函数及原型混合方式

    5、动态原型方式

    基本语法

    function 类名/原型对象(){

    }

    function Person(){}

    var a=new Person();

    window.alert(a.constructor); //a对象实例的构造函数

    window.alert(typeof a);    //a的类型是什么

    var b=”1234”;

    window.alert(b.constructor);  //b对象实例的构造函数

    window.alert(typeof b);  //b的类型是什么

    如何判断一个对象实例是不是Person类型?

    if(a instanceof Person){

    window.alert(“aperson”);

    }

    if(a.constructor==Person){

    window.alert(‘aperson’);

    }

    对象----function特别说明:

    1、在js中一切都是对象

    2、类(原型对象)其实也是对象,它实际上是Function类的一个实例,通过类我们可以创建自己的对象实例。

    对象实例---如何访问(使用)对象实例的成员变量

    (1)、对象实例名.属性名

    (2)、对象实例名.[“属性名”];

    var a=90; //全局变量

    function  test(){

    a=900;    //在函数里,如果不带var,则表示使用全局变量的a变量

      //如果带上var则表示在test()中,定义了一个新的a变量

    }

    test();

    window.alert(a);

    jsthis的用法:哪个对象实例调用this所在的函数,那么this就代表哪个对象的实例。

    〉〉this不能在类定义的外部使用,只能在类定义的方法中使用。如果放在外部使用,调用者就不再是类的实例了。

    function  Person(){

    var  name=”abc”; //var修饰的name是私有的,只能内部使用

    var   age=90;    

    this.name2=”abc2”;  //this.name2表示name2这个属性是公开的

    this.show=function(){ //这个就是Person类的一个公开方法(特权方法)

    window.alert(name+” ”+age);

    }

    function  show2(){  //这是Person类的一个私有方法

    }

    }

    var  p=new Person();

    window.alert(p1.name=” ”+p1.age+”  ”+p1.name2); //错误

    //p1.name->undefined  p1.age->undefined  p1.name2->abc2

    给对象添加方法还有两种方式:

    第一种:

    function  类名{

    this.属性;

    }

    var  对象名=new 类名(); //创建对象

    function  函数名(){

    //执行

    }

    对象名.属性名=函数名; //这样相当于把函数赋给对象名.属性名,

    //此时这个属性名就表示一个函数

    对象名.属性名;

    第二种:

    对象名.属性名=function(参数列表){

    }

    调用:对象名.属性名(实际参数);

  • 相关阅读:
    Velocity 创建命令缓存
    关于RESTful Web Services和RESTful设计的一些文章
    [转]Restful Web Services浅析
    Silverlight点滴(四)Silverlight访问Web Service报"System.Security.SecurityException: 安全性错误"的处理
    WebDevHelper RESTful服务和Ajax开发时的利器
    [原]读Google Data API源代码一:从创建一个日历(Calendar)开始
    [转]使用 WCF 和 .NET Framework 3.5 进行 HTTP 编程
    [原]Silverlight3 支持所有HTTP方法
    [原]RESTful Web Service之以HTTP PUT方式调用WCF服务
    [原]Google API学习2:Google API稍深入一步
  • 原文地址:https://www.cnblogs.com/eleven24/p/4218565.html
Copyright © 2011-2022 走看看