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

  • 相关阅读:
    4. Git撤销修改
    3. Git如何管理修改
    2. Git的工作区、暂存区和版本库
    1. Git创建仓库、查看工作区状态
    微信平台接入Web页面功能接口(C#)
    Python之路【第六篇】:Python运算符
    Python之路【第五篇】:Python基本数据类型
    Python之路【第四篇】:Pycharm集成开发环境
    Python之路【第二篇】:Python简介、解释器与编码
    Python之路【第七篇】:Python流程控制
  • 原文地址:https://www.cnblogs.com/soldierback/p/10698245.html
Copyright © 2011-2022 走看看