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