国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 12:26:18
字體:
來源:轉載
供稿:網友

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

1、工廠模式

ECMAScript 可以通過工廠模式來創建對象:

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

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

2、構造函數

//構造函數創建function Person(name,age){  //所有構造函數對象都是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); //turealert(typeof person2);         //Personalert(person2 instanceof Person);  // truevar person3=new Object();Person.call(person3,'zhu3',300);//對象冒充,person3是Object類型,冒充Person類型alert(person3.run()); 

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

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

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

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

3.沒有return 語句;

4.但是使用構造函數創建必須使用new運算符;

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日土县| 西昌市| 灵山县| 自贡市| 荥经县| 珠海市| 旺苍县| 桓台县| 方正县| 南乐县| 南川市| 嘉峪关市| 罗山县| 绵阳市| 东平县| 嵊泗县| 西贡区| 贡山| 盐亭县| 吉安县| 安平县| 遂川县| 许昌市| 申扎县| 邓州市| 日喀则市| 特克斯县| 炉霍县| 乐都县| 奎屯市| 山阳县| 隆尧县| 汾西县| 庆元县| 循化| 五原县| 南充市| 青岛市| 樟树市| 平湖市| 青岛市|