摘要:創(chuàng)建對(duì)象的幾種方式字面量創(chuàng)建原型鏈如下繼承的屬性比如原型鏈如下繼承的屬性比如原型鏈如下繼承的屬性比如使用構(gòu)造器創(chuàng)建對(duì)象構(gòu)造器就是一個(gè)普通的函數(shù)是生成的對(duì)象,它的自身屬性有在被實(shí)例化時(shí),指向了使用創(chuàng)建對(duì)象因?yàn)闆]有繼承使用關(guān)鍵字
創(chuàng)建對(duì)象的幾種方式:
字面量創(chuàng)建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使用構(gòu)造器創(chuàng)建對(duì)象
構(gòu)造器就是一個(gè)普通的函數(shù) function Graph(){ this.vertexes = []; this.edges = []; } Graph.prototype = { addVertex: function(v){ this.vertexes.push(v); } }; var g = new Graph(); // g是生成的對(duì)象,它的自身屬性有"vertexes","edges", // 在g被實(shí)例化時(shí),g.[[prototype]]指向了Graph.prototype使用Object.create創(chuàng)建對(duì)象
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,因?yàn)閐沒有繼承Object.prototype使用class關(guān)鍵字
‘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);
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/87950.html
摘要:下面,讓我們以一個(gè)函數(shù)的創(chuàng)建和激活兩個(gè)時(shí)期來講解作用域鏈?zhǔn)侨绾蝿?chuàng)建和變化的。這時(shí)候執(zhí)行上下文的作用域鏈,我們命名為至此,作用域鏈創(chuàng)建完畢。 JavaScript深入系列第五篇,講述作用鏈的創(chuàng)建過程,最后結(jié)合著變量對(duì)象,執(zhí)行上下文棧,讓我們一起捋一捋函數(shù)創(chuàng)建和執(zhí)行的過程中到底發(fā)生了什么? 前言 在《JavaScript深入之執(zhí)行上下文?!分兄v到,當(dāng)JavaScript代碼執(zhí)行一段可執(zhí)行代...
摘要:深入系列第七篇,結(jié)合之前所講的四篇文章,以權(quán)威指南的為例,具體講解當(dāng)函數(shù)執(zhí)行的時(shí)候,執(zhí)行上下文棧變量對(duì)象作用域鏈?zhǔn)侨绾巫兓?。前言在深入之?zhí)行上下文棧中講到,當(dāng)代碼執(zhí)行一段可執(zhí)行代碼時(shí),會(huì)創(chuàng)建對(duì)應(yīng)的執(zhí)行上下文。 JavaScript深入系列第七篇,結(jié)合之前所講的四篇文章,以權(quán)威指南的demo為例,具體講解當(dāng)函數(shù)執(zhí)行的時(shí)候,執(zhí)行上下文棧、變量對(duì)象、作用域鏈?zhǔn)侨绾巫兓摹?前言 在《Jav...
摘要:之運(yùn)算符運(yùn)算符創(chuàng)建一個(gè)用戶定義的對(duì)象類型的實(shí)例或具有構(gòu)造函數(shù)的內(nèi)置對(duì)象的實(shí)例。使用指定的參數(shù)調(diào)用構(gòu)造函數(shù),并將綁定到新創(chuàng)建的對(duì)象。 JavaScript之new運(yùn)算符 new運(yùn)算符創(chuàng)建一個(gè)用戶定義的對(duì)象類型的實(shí)例或具有構(gòu)造函數(shù)的內(nèi)置對(duì)象的實(shí)例。new關(guān)鍵字會(huì)進(jìn)行如下的操作: 1. 創(chuàng)建一個(gè)空的簡(jiǎn)單JavaScript對(duì)象(即{}); 2. 鏈接該對(duì)象(即設(shè)置該對(duì)象的構(gòu)造函數(shù))到另一個(gè)對(duì)...
摘要:深入系列第四篇,具體講解執(zhí)行上下文中的變量對(duì)象與活動(dòng)對(duì)象。下一篇文章深入之作用域鏈本文相關(guān)鏈接深入之執(zhí)行上下文棧深入系列深入系列目錄地址。 JavaScript深入系列第四篇,具體講解執(zhí)行上下文中的變量對(duì)象與活動(dòng)對(duì)象。全局上下文下的變量對(duì)象是什么?函數(shù)上下文下的活動(dòng)對(duì)象是如何分析和執(zhí)行的?還有兩個(gè)思考題幫你加深印象,快來看看吧! 前言 在上篇《JavaScript深入之執(zhí)行上下文?!分?..
摘要:在最開始的時(shí)候,原型對(duì)象的設(shè)計(jì)主要是為了獲取對(duì)象的構(gòu)造函數(shù)。同理數(shù)組通過調(diào)用函數(shù)通過調(diào)用原型鏈中描述了原型鏈的概念,并將原型鏈作為實(shí)現(xiàn)繼承的主要方法。 對(duì)象的創(chuàng)建 在JavaScript中創(chuàng)建一個(gè)對(duì)象有三種方式??梢酝ㄟ^對(duì)象直接量、關(guān)鍵字new和Object.create()函數(shù)來創(chuàng)建對(duì)象。 1. 對(duì)象直接量 創(chuàng)建對(duì)象最直接的方式就是在JavaScript代碼中使用對(duì)象直接量。在ES5...
摘要:深入系列第十四篇,講解創(chuàng)建對(duì)象的各種方式,以及優(yōu)缺點(diǎn)。也就是說打著構(gòu)造函數(shù)的幌子掛羊頭賣狗肉,你看創(chuàng)建的實(shí)例使用都無法指向構(gòu)造函數(shù)這樣方法可以在特殊情況下使用。 JavaScript深入系列第十四篇,講解創(chuàng)建對(duì)象的各種方式,以及優(yōu)缺點(diǎn)。 寫在前面 這篇文章講解創(chuàng)建對(duì)象的各種方式,以及優(yōu)缺點(diǎn)。 但是注意: 這篇文章更像是筆記,因?yàn)椤禞avaScript高級(jí)程序設(shè)計(jì)》寫得真是太好了! 1....
閱讀 2570·2021-11-11 16:54
閱讀 2811·2021-09-26 09:47
閱讀 4082·2021-09-08 09:36
閱讀 2851·2021-07-25 21:37
閱讀 1001·2019-08-30 15:54
閱讀 2616·2019-08-30 14:22
閱讀 3358·2019-08-30 13:57
閱讀 2918·2019-08-29 17:17