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

  • 相关阅读:
    git 配置免密上传,配置ssh key
    spring @value 为什么没有获取到值
    idea 下maven 导入本地jar,以及导入之后 java不能引用问题
    在git远程仓创建项目之后,提交本地项目的使用方法
    mysql 查询数据库参数命令
    spring Existing transaction found for transaction marked with propagation 'never' 解决
    nginx for ubuntu
    spring中for循环中事务
    面向接口编程详解(一)——思想基础
    实战MEF(5):导出元数据
  • 原文地址:https://www.cnblogs.com/soldierback/p/10698245.html
Copyright © 2011-2022 走看看