zoukankan      html  css  js  c++  java
  • JS创建对象之组合使用构造函数模式和原型模式

    function Person(name, age, job) {
        this.name = name;
        this.age = age;
        this.job = job;
        this.friends = {'"Mar", "Court"};
    }
    
    Person.prototype = {
        constructor: Person;
        sayName: function() {
            alert(this.name);
        }  
    }
    
    var person1 = new Person("Mary", 29, "Software Engineer");
    var person2 = new Person("Mike", 27, "Software Engineer");
    
    person1.friends.push("Van");
    alert(person1.friends); // "Mar, Court, Van"
    alert(person2.friends); // "Mar, Court"
    alert(person1.friends === person2.friends); // false
    alert(person1.sayName ==== person2.sayName); // true

    注:js中 == 和 === 区别

    简单来说: == 代表相同, ===代表严格相同, 为啥这么说呢

    这么理解:(1)当进行 == 比较时,先检查两个操作数数据类型,如果相同, 则进行 === 比较,否则进行一次类型转换再进行比较;

            (2)而 === 比较时, 如果类型不同,直接就是false.

    比较过程:

     (1)双等号==: 

        1)如果两个值类型相同,再进行三个等号 === 的比较

        2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:

           i.  如果一个是null,一个是undefined,那么相等

           ii. 如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较

     (2)三等号===:

           1)如果类型不同,就一定不相等

         2)如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等(判断一个值是否是NaN,只能使用isNaN( ) 来判断)

         3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。

         4)如果两个值都是true,或是false,那么相等

         5)如果两个值都引用同一个对象或是函数,那么相等,否则不相等

         6)如果两个值都是null,或是undefined,那么相等

    ========== ====================   js中 == 和 === 区别 知识点的来源   ===================================

    https://www.cnblogs.com/nelson-hu/p/7922731.html

  • 相关阅读:
    hosts 文件妙用
    asp.net 各种路径
    正则表达式
    int.Parse()、int.TryParse()和Convert.ToInt32()的区别
    总结.NET 中什么时候用 Static
    利用.net的内部机制在asp.net中实现身份验证
    server.transfer 用法
    sql server Datetime格式转换
    如果在代码中使用JS
    js 添加广告
  • 原文地址:https://www.cnblogs.com/soldierback/p/10698245.html
Copyright © 2011-2022 走看看