面向對象與原型

来源:http://www.cnblogs.com/winpin-li-home1001/archive/2017/11/25/7895600.html
-Advertisement-
Play Games

說真的,學習JavaScript時,面向對象與原型這章特別考驗你的編程基礎能力,邏輯性很強,初學時,整個人都是懵逼的狀態,現在依然有點,每個函數的封裝方式都是從缺點最多的寫法進入,再一步一步深入,不斷優化函數,最終,使得自己寫出的函數能夠代碼精簡,並且相容性好,下麵我就分享下最基礎的工廠模式吧!(創 ...


說真的,學習JavaScript時,面向對象與原型這章特別考驗你的編程基礎能力,邏輯性很強,初學時,整個人都是懵逼的狀態,現在依然有點,每個函數的封裝方式都是從缺點最多的寫法進入,再一步一步深入,不斷優化函數,最終,使得自己寫出的函數能夠代碼精簡,並且相容性好,下麵我就分享下最基礎的工廠模式吧!(創建對象)

1.首先要說明的是工廠模式的好處:那就是它能解決實例化對象產生的大量重覆的問題。

2.下麵我來寫一段非公工廠模式下:

//創建一個對象,然後給這個對象創建新屬性和方法
var Nofactory=new  object();
Nofactory.name='Lee';
Nofactory.age=100;
Nofactory.run=function(){
    return this.name+this.age;
}   
alert(Nofactory.run()); 

 如果我要改變屬性的話,每次都要重新創建對象,步驟很重覆

3.工廠模式:

//集中實例化的函數
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 factory1=createObject('Lee',100);//實例化對象
var factory2=createObject('Jack',50);//實例化對象
alert(factory1.run());//列印出結果是:Lee100
alert(factory2.run());//列印出結果是:Jack50

    


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、cookie和session cookie可以單獨工作 cookie也可以和session配合來用 每一個瀏覽器都會有一個cookie:{} 瀏覽器第一次訪問伺服器的時候cookie是空的 伺服器需要讓客戶端保存一些數據cookie {"sessionID":"隨機字元串"},當下次請求的時候就 ...
  • 這個是我對面向對象的理解,理解有誤請噴我吧!菜鳥一枚! 用最簡單的方式,去辦最複雜的是,看字面意思理解面向對象,就是先要面向找到需要面向的東西,把所要面向的東西抽象出來,封裝在一個盒子中組成一個對象。而這個東西可以是對象的屬性,對象的行為特征等。所以面向對象在我看來就是將所要表示的具有相同對象的屬性 ...
  • 其實在平常的一些佈局中也經常有要實現元素的垂直居中和水平居中的的需要,下麵來寫幾種css/css3實現的未知寬高元素的水平和垂直居中的寫法 ps:不考慮相容問題(下次會寫js實現元素的水平and垂直居中 ) 第一種 css3的transform 第二種 flex盒子佈局 第三種 display的ta ...
  • 我們經常會看到這樣的寫法: 這就是一個簡單的IIFE(立即執行函數表達式,immediately invoked function expression)了。 這樣的寫法有什麼好處呢?來簡單分析一下。 1. 開頭的分號 我們都知道,js是可以加分號或者不加分號的,在某些情況下,不加分號會讓解析器解析 ...
  • jQuery EasyUI 是一個基於 jQuery 的框架,集成了各種用戶界面插件。jQuery EasyUI 框架提供了創建網頁所需的一切,幫助您輕鬆建立站點。對於我這種不適合前端UI的人來說是一種福音,現在就開始記錄一下easyUI的第一天學習內容。首先需要在網站http://www.jeas ...
  • 查看原文 ...
  • $(window).scroll(function(event){ //JQ監聽滾動條 $('DIV').css("top", $(window).scrollTop()-300);//設置DIV的top}); ...
  • 1.基礎的原型認識:我們創建的每個函數都有一個prototyoe屬性,這個屬性是一個對象,它的用途是包含可以由特定類型的所有實例共用的屬性和方法。邏輯上可以這麼理解:prototype通過調用構造函數而創建的那個對象的原型對象。另外要說的_proto_是指向原型屬性constructor的。 2.原 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...