<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      簡單聊聊JavaScript 中的原型鏈、null 和 undefined 的區別

      1.原型鏈

      個人觀點:原型鏈和邏輯判斷里三段論有些類似,一個大前提、一個小前提、一個結論。比如,動物會吃肉,狗是動物,所以狗會吃肉。這也是繼承的思想

      原型和構造函數

      JavaScript 是基于原型的面向對象編程語言,每個對象都有一個內部鏈接到另一個對象(即原型)。這個機制被稱為原型鏈。原型鏈的存在使得對象可以繼承其他對象的屬性和方法。

      function Person(name) {
          this.name = name;
      }
      
      Person.prototype.sayHello = function() {
          console.log(`Hello, my name is ${this.name}`);
      };
      
      const alice = new Person('Alice');
      alice.sayHello(); // Hello, my name is Alice

       

      在上面的例子中,Person 是一個構造函數,Person.prototype 是它的原型對象。通過 new Person('Alice') 創建的 alice 對象繼承了 Person.prototype 上的 sayHello 方法。這種繼承關系是通過原型鏈實現的。

      原型鏈的繼承

      當訪問一個對象的屬性或方法時,JavaScript 引擎首先會在對象本身查找。如果找不到,它會沿著原型鏈向上查找,直到找到該屬性或方法,或者到達原型鏈的末端。

      function Animal(name) {
          this.name = name;
      }
      
      Animal.prototype.eat = function() {
          console.log(`${this.name} is eating`);
      };
      
      function Dog(name) {
          Animal.call(this, name); // 繼承屬性
      }
      
      Dog.prototype = Object.create(Animal.prototype); // 繼承方法
      Dog.prototype.constructor = Dog;
      
      const dog = new Dog('Buddy');
      dog.eat(); // Buddy is eating

       

      在這個例子中,Dog 繼承了 Animal 的屬性和方法。通過 Object.create(Animal.prototype),我們創建了一個新的原型對象,這個對象的原型是 Animal.prototype。這就建立了一個原型鏈,Dog 的實例 dog 可以訪問 Animal 的方法。

      2.nullundefined(面試經常問)

      undefined

      undefined 是 JavaScript 中的一種基本數據類型,表示變量已經聲明但尚未賦值。它也是全局對象的一個屬性(window.undefined)。

      let x;
      console.log(x); // undefined
      
      function greet(name) {
          console.log(`Hello, ${name}`);
      }
      
      greet(); // Hello, undefined

       

      在上面的例子中,變量 x 被聲明但沒有賦值,因此其值是 undefined。函數 greet 在沒有傳入參數時,name 的值也是 undefined

      null

      null 是 JavaScript 中的另一個基本數據類型,表示一個空對象引用。它通常用于顯式地表示變量沒有任何值。

      let y = null;
      console.log(y); // null
      
      const obj = {
          key: null
      };
      console.log(obj.key); // null

       

      在上面的例子中,變量 y 被賦值為 null,表示它不引用任何對象。同樣,obj.key 被顯式設置為 null

      nullundefined 的區別

      盡管 nullundefined 都表示“沒有值”,但它們有顯著的區別:

      1. 類型

        • undefined 是一個類型。
        • null 是一個對象類型。
      2. 用法

        • undefined 表示變量尚未賦值。
        • null 表示變量已賦值為空對象。
      3. 比較

        • 使用 == 比較時,nullundefined 被認為是相等的:
        • console.log(null == undefined); // true

           

        • 使用 === 比較時,nullundefined 被認為是不相等的:
        • console.log(null === undefined); // false

            

      posted @ 2024-07-28 13:51  最小生成樹  閱讀(51)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲av永久无码精品漫画| 国产精品亚洲mnbav网站| 欧美性XXXX极品HD欧美风情| 欧美色丁香| 啊┅┅快┅┅用力啊岳网站| 无码日韩人妻精品久久| 狠狠躁夜夜躁人人爽天天5| 亚洲区日韩精品中文字幕| 启东市| 在国产线视频A在线视频| 最近中文字幕日韩有码| 女高中生强奷系列在线播放| 免费观看成人毛片a片| 老鸭窝| 午夜福利理论片高清在线| 西西人体44www大胆无码| 国产成人精品亚洲午夜麻豆 | 激情综合五月丁香亚洲| 济源市| 成人网站网址导航| 在线观看美女网站大全免费| 久久久精品国产精品久久| 久久精品色一情一乱一伦| 激情久久av一区av二区av三区| 国内自拍偷拍福利视频看看 | 久久99精品久久久久久9| 国产美女被遭强高潮免费一视频| 中文字幕结果国产精品| 欧美日产国产精品日产| 男人的天堂av一二三区| 马龙县| 在线中文一区字幕对白| 国产精品久久久久久福利69堂 | 国产老熟女国语免费视频| 国产成人a在线观看视频| 精品国产一区二区三区久| 蜜芽久久人人超碰爱香蕉| 精品一区二区不卡免费| 泰兴市| 久青草国产综合视频在线| 国产一区二区三区的视频|