最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單分析javascript面向對象與原型

 更新時間:2015年05月21日 10:05:00   投稿:hebedich  
為了說明 JavaScript 是一門徹底的面向對象的語言,首先有必要從面向對象的概念著手 , 探討一下面向對象中的幾個概念:1.一切事物皆對象,2.對象具有封裝和繼承特性,3.對象與對象之間使用消息通信,各自存在信息隱藏

本文主要內容參考來自JavaScript高級程序設計,面向對象與原型章節(jié):

1、工廠模式

ECMAScript 可以通過工廠模式來創(chuàng)建對象:

//工廠模式
function createObject(name, age) {
  var obj = new Object();                  //創(chuàng)建對象
  obj.name = name;                      //添加屬性
  obj.age = age;
  obj.run = function () {                    //添加方法
    return this.name + this.age + '運行中...';
  };
  return obj;                            //返回對象引用
};
var obj1 = createObject('Lee', 100);          //創(chuàng)建第一個對象
var obj2 = createObject('Jack', 200);          //創(chuàng)建第二個對象
//alert(obj1.run());                          //打印第一個對象實例的run()方法
//alert(obj2.run());                          //打印第二個對象實例的run()方法

//alert(typeof obj1);
//alert(typeof obj2);
alert(obj1 instanceof Object); //true
alert(obj2 instanceof Object); //true

通過工廠模式創(chuàng)建的對象,解決了重復實例化問題,但對象識別問題無法解決(所有對象均是Object),因此要想解決對象識別問題,我們采用下面的構造函數(shù)。

2、構造函數(shù)

//構造函數(shù)創(chuàng)建
function Person(name,age){  //所有構造函數(shù)對象都是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);//對象冒充,person3是Object類型,冒充Person類型
alert(person3.run()); 

構造函數(shù)中this:代表當前作用域對象的引用,如果在全局范圍this代表window對象,如果在構造函數(shù)體內,就代表當前構造函數(shù)所聲明的對象。

構造函數(shù)方法,及解決了重復實例化問題,有解決了對象識別問題,對比跟工廠方法不同之處可知:

1.構造函數(shù)方法沒有顯示的創(chuàng)建對象(new Object());

2.直接將屬性和方法值賦值給this;

3.沒有return 語句;

4.但是使用構造函數(shù)創(chuàng)建必須使用new運算符;

以上所述就是本文的全部內容了,希望大家能夠喜歡。

相關文章

  • jQuery事件委托之Safari

    jQuery事件委托之Safari

    這篇文章主要介紹了jQuery事件委托之Safari 的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • 基于Jquery代碼實現(xiàn)手風琴菜單

    基于Jquery代碼實現(xiàn)手風琴菜單

    這篇文章主要介紹了基于Jquery代碼實現(xiàn)手風琴菜單,代碼簡單易懂,需要的朋友參考下
    2015-11-11
  • jQuery移動和復制dom節(jié)點實用DOM操作案例

    jQuery移動和復制dom節(jié)點實用DOM操作案例

    復制節(jié)點也是常用的DOM操作之一,例如很多購物網(wǎng)站的效果,本文將介紹jQuery移動和復制dom節(jié)點等實用DOM操作,有需的朋友可以參考下
    2012-12-12
  • JQGrid的用法解析(列編輯,添加行,刪除行)

    JQGrid的用法解析(列編輯,添加行,刪除行)

    本文是對JQGrid的用法--列編輯,添加行,刪除行。進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • jQuery實現(xiàn)TAB選項卡切換特效簡單演示

    jQuery實現(xiàn)TAB選項卡切換特效簡單演示

    這篇文章主要為大家詳細介紹了jQuery實現(xiàn)TAB選項卡切換特效簡單演示,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-03-03
  • jquery checkbox,radio是否選中的判斷代碼

    jquery checkbox,radio是否選中的判斷代碼

    jquery checkbox,radio是否選中的判斷代碼,需要的朋友可以參考下。
    2010-03-03
  • jQuery插件Easyui設置datagrid的pageNumber導致兩次請求問題的解決方法

    jQuery插件Easyui設置datagrid的pageNumber導致兩次請求問題的解決方法

    這篇文章主要介紹了jQuery插件Easyui設置datagrid的pageNumber導致兩次請求問題的解決方法,較為詳細的描述了出現(xiàn)的問題、問題的原因及相應的解決方法,需要的朋友可以參考下
    2016-08-08
  • jQuery中die()方法用法實例

    jQuery中die()方法用法實例

    這篇文章主要介紹了jQuery中die()方法用法,實例分析了die()方法的功能、定義及移除所有通過live()方法向指定元素添加的一個或多個事件處理程序的使用技巧,需要的朋友可以參考下
    2015-01-01
  • jQuery仿寫百度百科的目錄樹

    jQuery仿寫百度百科的目錄樹

    這篇文章主要介紹了jQuery仿寫百度百科的目錄樹醫(yī)保詞條樣式,點擊右側的目錄樹,左側跳轉到指定的錨點位置,滾動鼠標,游標跟隨一起滾動至響應鏈接位置,具體實現(xiàn)思路大家參考下本文
    2017-01-01
  • Jquery實現(xiàn)圖片左右自動滾動示例

    Jquery實現(xiàn)圖片左右自動滾動示例

    圖片左右滾動的效果想必大家都有見到過吧,其實很簡單。在本文將為大家介紹下使用Jquery是如何實現(xiàn)圖片左右自動滾動的,感興趣的朋友可以參考下
    2013-09-09

最新評論

张家港市| 天等县| 缙云县| 治县。| 九江市| 平潭县| 遵义县| 大安市| 江北区| 定边县| 平湖市| 冷水江市| 牙克石市| 卫辉市| 岑巩县| 开化县| 仁寿县| 两当县| 馆陶县| 四平市| 东宁县| 阳江市| 剑阁县| 云林县| 南涧| 隆化县| 苍南县| 白银市| 山东| 化隆| 伊宁市| 台湾省| 会宁县| 观塘区| 昭通市| 师宗县| 剑河县| 天门市| 枞阳县| 客服| 清涧县|