摘要:創建對象的幾種方式字面量創建原型鏈如下繼承的屬性比如原型鏈如下繼承的屬性比如原型鏈如下繼承的屬性比如使用構造器創建對象構造器就是一個普通的函數是生成的對象,它的自身屬性有在被實例化時,指向了使用創建對象因為沒有繼承使用關鍵字
創建對象的幾種方式:
字面量創建var o ={a:1,b:2}; 原型鏈如下: o ---> Object.prototype --->null 繼承的屬性比如:hasOwnProperty var a = ["i", "like", "you"]; 原型鏈如下: a ---> Array.prototype ---> Object.prototype ---> null 繼承的屬性比如:indexOf,forEach var f = function(){return 2;} 原型鏈如下: f ---> Function.prototype ---> Object.prototype ---> null 繼承的屬性比如:call,bind,apply使用構造器創建對象
構造器就是一個普通的函數 function Graph(){ this.vertexes = []; this.edges = []; } Graph.prototype = { addVertex: function(v){ this.vertexes.push(v); } }; var g = new Graph(); // g是生成的對象,它的自身屬性有"vertexes","edges", // 在g被實例化時,g.[[prototype]]指向了Graph.prototype使用Object.create創建對象
var a = {a:1}; // a ---> Object.prototype ---> null var b = Object.create(a); //b ---> a ---> Object.prototype --->null var c = Object.create(b); //c ---> b ---> a ---> Object.prototype --->null var d = Object.create(null); //d ---> null console.log(d.hasOwnProperty); // undefined,因為d沒有繼承Object.prototype使用class關鍵字
‘use strict’ class Polygon { constructor(height,width){ this.height = height; this.width = width; } } class Square extends Polygon { constructor(sideLength){ super(sideLength, sideLength); } get area() { return this.height * this.width; } set sideLength(newLength) { this.height = newLength; this.wdith = newLength; } } var square = new Square(2);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87950.html
摘要:下面,讓我們以一個函數的創建和激活兩個時期來講解作用域鏈是如何創建和變化的。這時候執行上下文的作用域鏈,我們命名為至此,作用域鏈創建完畢。 JavaScript深入系列第五篇,講述作用鏈的創建過程,最后結合著變量對象,執行上下文棧,讓我們一起捋一捋函數創建和執行的過程中到底發生了什么? 前言 在《JavaScript深入之執行上下文棧》中講到,當JavaScript代碼執行一段可執行代...
摘要:深入系列第七篇,結合之前所講的四篇文章,以權威指南的為例,具體講解當函數執行的時候,執行上下文棧變量對象作用域鏈是如何變化的。前言在深入之執行上下文棧中講到,當代碼執行一段可執行代碼時,會創建對應的執行上下文。 JavaScript深入系列第七篇,結合之前所講的四篇文章,以權威指南的demo為例,具體講解當函數執行的時候,執行上下文棧、變量對象、作用域鏈是如何變化的。 前言 在《Jav...
摘要:之運算符運算符創建一個用戶定義的對象類型的實例或具有構造函數的內置對象的實例。使用指定的參數調用構造函數,并將綁定到新創建的對象。 JavaScript之new運算符 new運算符創建一個用戶定義的對象類型的實例或具有構造函數的內置對象的實例。new關鍵字會進行如下的操作: 1. 創建一個空的簡單JavaScript對象(即{}); 2. 鏈接該對象(即設置該對象的構造函數)到另一個對...
摘要:深入系列第四篇,具體講解執行上下文中的變量對象與活動對象。下一篇文章深入之作用域鏈本文相關鏈接深入之執行上下文棧深入系列深入系列目錄地址。 JavaScript深入系列第四篇,具體講解執行上下文中的變量對象與活動對象。全局上下文下的變量對象是什么?函數上下文下的活動對象是如何分析和執行的?還有兩個思考題幫你加深印象,快來看看吧! 前言 在上篇《JavaScript深入之執行上下文棧》中...
摘要:在最開始的時候,原型對象的設計主要是為了獲取對象的構造函數。同理數組通過調用函數通過調用原型鏈中描述了原型鏈的概念,并將原型鏈作為實現繼承的主要方法。 對象的創建 在JavaScript中創建一個對象有三種方式。可以通過對象直接量、關鍵字new和Object.create()函數來創建對象。 1. 對象直接量 創建對象最直接的方式就是在JavaScript代碼中使用對象直接量。在ES5...
摘要:深入系列第十四篇,講解創建對象的各種方式,以及優缺點。也就是說打著構造函數的幌子掛羊頭賣狗肉,你看創建的實例使用都無法指向構造函數這樣方法可以在特殊情況下使用。 JavaScript深入系列第十四篇,講解創建對象的各種方式,以及優缺點。 寫在前面 這篇文章講解創建對象的各種方式,以及優缺點。 但是注意: 這篇文章更像是筆記,因為《JavaScript高級程序設計》寫得真是太好了! 1....
閱讀 2345·2021-11-11 16:54
閱讀 2596·2021-09-26 09:47
閱讀 3978·2021-09-08 09:36
閱讀 2727·2021-07-25 21:37
閱讀 927·2019-08-30 15:54
閱讀 2540·2019-08-30 14:22
閱讀 3245·2019-08-30 13:57
閱讀 2558·2019-08-29 17:17