• js总结 (3)对象的创建方法,构造函数,包装类等


    一.创建对象

    <script>
    // 使用Object创建对象
    // var car = new Object();
    // car.name = 'merz'
    // car.color = 'red';

    // 对象字面量创建对象

    // var car = {
    // name :"BMW",
    // color :"blue"
    // };

    // 局限性:当需要创建n个同类重复对象时,需要重复代码n次。


    // 工厂模式

    function Car(color) {
    
    this.name="Audi";
    this.age=3;
    this.color=color;
    this.health=function () {
    console.log(this.age);
    this.age--;
    return; 
    }
    
    } 
    var car1= new Car("red");
    car1.age=5;

     有new发生的隐式三步变换

    1.在函数体最前面隐式的加上this ={}
    2.执行this.XXX = XXX
    3.隐式的返回this

    二.构造函数

     包装类 基本原始值

    1.Number()

    2.String()  默认有length属性而且不可赋值

    3.Boolean()

    重点:原始值没自定义有属性和方法 不能给原始值赋值(赋值也不会报错)

    <script> 
        var num = 4;
        num.len = 3;   // 违法语句 用包装类类解
                //new number(4).len=3; delete
                //系统自动生成一个newNumber(4)(现在不为原始值所以可以赋值)再为其赋属性值len,操作完以上步骤随即销毁。

    console.log(num.len);// 访问 undefined
                   
    </script>

    <script type = "text/javascript"> 
        var str = "abc";
        str += 1;
        var test = typeof(str);  //test = "string"
        if(test.length == 6) {
            test.sign = "typeof的返回结果可能为string";   //因为前面有test = "string",所以现在是string类型
            //new String(test).sign = 'xxx';     
       }
       //new String(test).sign   销毁
        console.log(test.sign);
    </script>
    
    //undefined

    不同的人调用工厂的函数 他们一开始是一样的后面的改变 互不相干 比如下面

    <script type = "text/javascript"> 
        function Person(name,age,sex) {   
            var a = 0;
            this.name = name;
            this.age = age;
            this.sex = sex;
            function sss () {
                a++;
                console.log(a);
            }
            this.say = sss;
        }
        var oPerson = new Person();
        oPerson.say();
        oPerson.say();
        var oPerson1 = new Person();
        oPerson1.say();
    </script>
    //1 2 1
  • 相关阅读:
    12 Overlap Graphs
    11 Mortal Fibonacci Rabbits
    10 Consensus and Profile
    09 Finding a Motif in DNA
    08 Translating RNA into Protein
    07Mendel's First Law
    大数据面试题目录
    大数据面试题以及答案整理(一)
    工作流调度器之Azkaban
    VI编辑
  • 原文地址:https://www.cnblogs.com/nice2018/p/9789299.html
Copyright © 2020-2023  润新知