zoukankan      html  css  js  c++  java
  • 创建对象

    1.创建新 JavaScript 对象有很多不同的方法

    源码

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
        </head>
        <body>
            <script>  
            //常用的
                var person1={
                    name : "丁少华",
                    sex  : "",
                    age  :  20
                };
                alert(person1.name)
                
            //其它的
                person2=new Object();
                person2.name="王新";
                alert(person2.name)
                
                
            //模仿java
                function person3(name,age){
                    this.name=name;
                    this.age=age;
                }
               dsh=new person3("康熙",20);
               alert(dsh.name)
            </script>  
        </body>
    </html>

    尝试比较java创建对象 (*^__^*) 

    public class person3 {
        String name;
        int age;
        person3(String name,int age){
            this.name=name;
            this.age=age;
        }
        public static void main(String[] args) {
            person3 dsh=new person3("康熙",20);
            System.out.println(dsh.name);
        }
    }

    突发奇想,既然js也是面向对象。那么就按照java的方式来创建对象。结果确保错

    于是,百度一下,哦,好吧,是有区别,但区别又不大。
    1.构造方法不用包含在person3类里
    2.创建对象也不用写在函数里
    3.构造函数也不需要数据类型

    2.-js创建对象,对象调用方法

    前言:js的方法是可以直接执行的,不用任何对象或类(它也没类),但是我们这里讲的是嵌套方法

    源码:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
        </head>
        <body>
            <script>
               //构造函数里写 :初始化以及方法
               //因为js里没有类的概念,就把类方法也写在构造函数里
                   function People(age){
                       this.age=age;
                       this.tt=function(){alert(age+1)};
               }
                   dsh=new People(20);//实例化对象
                   dsh.tt()
            </script>
        </body>
    </html>

    试比较java

    public class sudent {
        //声明变量
          int age;
        
        //构造函数  
          sudent(int age){this.age=age;}
        
        //方法 
          void test(){ System.out.println(age+5); }
          
       //主方法:程序从这里执行 
          public static void main(String[] args) {
          sudent dsh=new sudent(5);//创建对象
          dsh.test();//执行test方法
        }
    }

    初始化即执行

    源码

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
        </head>
        <body>
            <script>
               //构造函数里写 :初始化以及方法
               //因为js里没有类的概念,就把类方法也写在构造函数里
                   function People(age){
                       this.age=age;
                       (function(){alert(age+1);})()//js立即执行函数
               }
                   dsh=new People(20);//实例化对象
            </script>
        </body>
    </html>

    试比较java

    public class sudent {
        
        //声明变量
          int age;
          sudent(int age){this.age=age; test();}
        
        //方法 
          void test(){ System.out.println(age+5); }
          
       //主方法:程序从这里执行 
          public static void main(String[] args) {
          sudent dsh=new sudent(5);//创建对象
        }
    }

    结论。

    调用方法方面,因为js没有类的概念,所以什么都需要在类似构造的那个函数里写上,严格来说那个函数并不是构造函数。  

    如果想要初始即执行的话,java是直接写在构造里的,而js则会报错,js有专用的立即执行函数格式

    3、(后续)

    新版的ES6可以直接用后台语法去写js啦,也有了类的概念。不要惊讶,应为语言本相同嘛,在说了,js语法本就松散,模仿能力又强

    <script type="text/javascript">
       class Student{
            constructor(name) {this.name = name;}//构造函数
            sayName() {console.log("My name is "+this.name);}//方法
       }
      var dsh=new Student("丁少华");
      dsh.sayName();
    </script>

    继承,-----像是完全抄袭java的了

    <script type="text/javascript">
        class People{
            constructor(name) {this.name = name;}//构造函数
            sayName() {console.log("My name is "+this.name);}//方法
        }
                
        class Student extends People{
            constructor(name) {super(name);}//直接调用父类构造器进行初始化
            speak(){console.log("我叫"+this.name);}
        }
                
        var dsh=new Student("丁少华");
        dsh.speak();
     </script>

     

  • 相关阅读:
    BootStrap Table前台和后台分页对JSON格式的要求
    神奇的外部嵌套(使用ROW_NUMBER()查询带条件的时候提示列名无效)
    要想获取select的值,使用ng-modle,否则无法获取select 的值
    Angular使用操作事件指令ng-click传多个参数示例
    Jenins 邮件通知
    Jenkins 流水线(Pipeline)
    Jenkins Master-Slave 架构
    Jenins 参数化构建
    Jenkins 用户权限管理
    Jenkins 安装
  • 原文地址:https://www.cnblogs.com/dshvv/p/5372776.html
Copyright © 2011-2022 走看看