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(参数列表){

    }

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

  • 相关阅读:
    加班的价值
    webApp 阅读器项目实践
    Oak Seeds 网站项目回顾
    [Echarts]用Echarts绘制饼状图
    [转载] 编程每一天(Write Code Every Day)
    对杀毒软件技术的浅浅理解
    记我的第二次自动化尝试——selenium+pageobject+pagefactory实现自动化下单、退款、撤销回归测试
    学习Selenium遇到的问题和解决方案
    记我的第一次自动化尝试
    jmeter环境配置、使用以及参数化之CSV Data Set Config
  • 原文地址:https://www.cnblogs.com/eleven24/p/4218565.html
Copyright © 2011-2022 走看看