面向?qū)ο蟮恼Z言有一個(gè)標(biāo)志,即擁有類的概念,抽象實(shí)例對象的公共屬性與方法,基于類可以創(chuàng)建任意多個(gè)實(shí)例對象,一般具有封裝、繼承、多態(tài)的特性!但JS中對象與純面向?qū)ο笳Z言中的對象是不同的,ECMA標(biāo)準(zhǔn)定義JS中對象:無序?qū)傩缘募?,其屬性可以包含基本值、對象或者函?shù)。可以簡單理解為JS的對象是一組無序的值,其中的屬性或方法都有一個(gè)名字,根據(jù)這個(gè)名字可以訪問相映射的值(值可以是基本值/對象/方法)。

官方解釋

原型模式如類模式一樣,都是是一種編程泛型,即編程的方法論。另外最近大紅大紫的函數(shù)編程也是一種編程泛型。JavaScript之父Brendan Eich在設(shè)計(jì)JavaScript時(shí),從一開始就沒打算為其加入類的概念,而是借鑒了另外兩門基于原型的的語言:Self和Smalltalk。

  既然同為面向?qū)ο笳Z言,那就得有創(chuàng)建對象的方法。在類語言中,對象基于模板來創(chuàng)建,首先定義一個(gè)類作為對現(xiàn)實(shí)世界的抽象,然后由類來實(shí)例化對象;而在原型語言中,對象以克隆另一個(gè)對象的方式創(chuàng)建,被克隆的母體稱為原型對象。

一、理解對象:

第一種:基于Object對象

移動(dòng)開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

var person = new Object();
person.name = 'My Name';
person.age = 18;
person.getName = function(){return this.name;
}

移動(dòng)開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

網(wǎng)友評論