簡(jiǎn)單分析javascript面向?qū)ο笈c原型
本文主要內(nèi)容參考來自JavaScript高級(jí)程序設(shè)計(jì),面向?qū)ο笈c原型章節(jié):
1、工廠模式
ECMAScript 可以通過工廠模式來創(chuàng)建對(duì)象:
//工廠模式 function createObject(name, age) { var obj = new Object(); //創(chuàng)建對(duì)象 obj.name = name; //添加屬性 obj.age = age; obj.run = function () { //添加方法 return this.name + this.age + '運(yùn)行中...'; }; return obj; //返回對(duì)象引用 }; var obj1 = createObject('Lee', 100); //創(chuàng)建第一個(gè)對(duì)象 var obj2 = createObject('Jack', 200); //創(chuàng)建第二個(gè)對(duì)象 //alert(obj1.run()); //打印第一個(gè)對(duì)象實(shí)例的run()方法 //alert(obj2.run()); //打印第二個(gè)對(duì)象實(shí)例的run()方法 //alert(typeof obj1); //alert(typeof obj2); alert(obj1 instanceof Object); //true alert(obj2 instanceof Object); //true
通過工廠模式創(chuàng)建的對(duì)象,解決了重復(fù)實(shí)例化問題,但對(duì)象識(shí)別問題無法解決(所有對(duì)象均是Object),因此要想解決對(duì)象識(shí)別問題,我們采用下面的構(gòu)造函數(shù)。
2、構(gòu)造函數(shù)
//構(gòu)造函數(shù)創(chuàng)建 function Person(name,age){ //所有構(gòu)造函數(shù)對(duì)象都是Object this.name=name; this.age=age; this.run=function(){ return this.name+this.age+"ing..."; }; }; var person1=new Person('zhu1',100); var person2=new Person('zhu2',200); alert(person1.run()); alert(person2.run()); alert(person1 instanceof Object); //ture alert(typeof person2); //Person alert(person2 instanceof Person); // true var person3=new Object(); Person.call(person3,'zhu3',300);//對(duì)象冒充,person3是Object類型,冒充Person類型 alert(person3.run());
構(gòu)造函數(shù)中this:代表當(dāng)前作用域?qū)ο蟮囊?,如果在全局范圍this代表window對(duì)象,如果在構(gòu)造函數(shù)體內(nèi),就代表當(dāng)前構(gòu)造函數(shù)所聲明的對(duì)象。
構(gòu)造函數(shù)方法,及解決了重復(fù)實(shí)例化問題,有解決了對(duì)象識(shí)別問題,對(duì)比跟工廠方法不同之處可知:
1.構(gòu)造函數(shù)方法沒有顯示的創(chuàng)建對(duì)象(new Object());
2.直接將屬性和方法值賦值給this;
3.沒有return 語句;
4.但是使用構(gòu)造函數(shù)創(chuàng)建必須使用new運(yùn)算符;
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
- js實(shí)現(xiàn)對(duì)ajax請(qǐng)求面向?qū)ο蟮姆庋b
- 詳解JavaScript基于面向?qū)ο笾^承實(shí)例
- 詳解JavaScript基于面向?qū)ο笾^承
- 詳解JavaScript基于面向?qū)ο笾畡?chuàng)建對(duì)象(2)
- 詳解JavaScript基于面向?qū)ο笾畡?chuàng)建對(duì)象(1)
- Javascript簡(jiǎn)單實(shí)現(xiàn)面向?qū)ο缶幊汤^承實(shí)例代碼
- 每天一篇javascript學(xué)習(xí)小結(jié)(面向?qū)ο缶幊蹋?/a>
- 初步了解javascript面向?qū)ο?/a>
- js面向?qū)ο笾R妱?chuàng)建對(duì)象的幾種方式(工廠模式、構(gòu)造函數(shù)模式、原型模式)
- JavaScript的面向?qū)ο缶幊袒A(chǔ)
- JavaScript面向?qū)ο笾接徐o態(tài)變量實(shí)例分析
相關(guān)文章
jquery獲取tr中控件值并操作tr實(shí)現(xiàn)思路
本教程將詳細(xì)介紹下jquery如何獲取tr中控件值并操作tr,代碼很精簡(jiǎn),感興趣的各位可以參考下哈,希望可以幫助到你們2013-03-03關(guān)于echarts在節(jié)點(diǎn)顯示動(dòng)態(tài)數(shù)據(jù)及添加提示文本所遇到的問題
這篇文章主要介紹了關(guān)于echarts在節(jié)點(diǎn)顯示動(dòng)態(tài)數(shù)據(jù)及添加提示文本所遇到的問題,需要的朋友可以參考下2018-04-04jquery選擇符快速提取web表單數(shù)據(jù)示例
遇到要重復(fù)多次同樣的事時(shí),就想找一種省時(shí)省力的方法,下面就為大家介紹下利用jquery選擇符快速提取web表單數(shù)據(jù)2014-03-03jquery實(shí)現(xiàn)靜態(tài)搜索功能(可輸入搜索文字)
本文主要介紹了jquery實(shí)現(xiàn)靜態(tài)搜索功能的示例代碼,可通過輸入搜索文字進(jìn)行篩選信息。具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-03-03treepanel動(dòng)態(tài)加載數(shù)據(jù)實(shí)現(xiàn)代碼
本文介紹一個(gè)treepanel動(dòng)態(tài)加載數(shù)據(jù)的例子,需要了解的朋友可以參考下2012-12-12jQuery fadeTo方法調(diào)整圖片的透明度使用介紹
利用jquery的fadeTo方法可以簡(jiǎn)單的制作一些很不錯(cuò)的動(dòng)畫效果.可以使圖片或者文字或者區(qū)塊以不同的透明度效果出現(xiàn).例如以下練習(xí)實(shí)例,感興趣的朋友可以參考下哈2013-05-05jquery判斷checkbox是否選中及改變checkbox狀態(tài)的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猨query判斷checkbox是否選中及改變checkbox狀態(tài)的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05