1. 程式人生 > >javascript封裝繼承 和 名稱空間,this,屬性表示法介紹

javascript封裝繼承 和 名稱空間,this,屬性表示法介紹

繼承發展史

  1. 傳統形式—>原型鏈

    • 過多的繼承了沒用的元素
      這裡寫圖片描述
  2. 借用建構函式

    • 不能繼承借用建構函式的原型
    • 每次建構函式都要多走一個函式
      這裡寫圖片描述
  3. 共享原型

    • 不能隨便改動自己的原型
      這裡寫圖片描述
  4. 聖盃模式
    有兩種格式

    • 第一種
//聖盃模式
function inherit(Origin, Target) {
    function F() {};
    F.prototype = Origin.prototype;
    Target.prototype = new F();
    Target.prototype.constructor = Target;
    Target.prototype.uber = Origin.prototype;//Target的真正原型
} //constructor 屬性返回對建立此物件的陣列函式的引用。 Person.prototype.lastName = 'liu'; function Person() {} function son() {} inherit(Person, Son); Son.prototype.age = 123; var son = new Son;
  • 第二種
var inherit2 = (function(){  
  var F = function(){};  
  return function(Parent, Child){  
    F.prototype = Parent.prototype;  
    Child.prototype = new
F(); Child.prototype.constructor = Child; Child.prototype.uber = Parent.prototype; } })();

名稱空間

管理變數, 防止汙染全域性變數, 適用於模組化開發, 可以採用立即執行函式的形式
eg:
這裡寫圖片描述

this

  1. 函式預編譯過程 this—->window
    這裡寫圖片描述
  2. 全域性作用域裡this—->window
  3. call/apply 可以改變函式執行時this的指向
  4. obj.func( ); func( )裡面的this指向obj
    這裡寫圖片描述

屬性表示方法

  1. obj.prop
  2. obj[‘prop’]
    例: obj.name——–> obj[‘name’]
    例1
    這裡寫圖片描述
    例2字串拼接
    這裡寫圖片描述

相關推薦

javascript封裝繼承 名稱空間,this,屬性表示介紹

繼承發展史 傳統形式—>原型鏈 過多的繼承了沒用的元素 借用建構函式 不能繼承借用建構函式的原型 每次建構函式都要多走一個函式 共享原型 不能隨便改動自己的原型 聖盃模式有兩種格式 第

Spring使用p名稱空間配置屬性

mes from can bar amp 目的 using to do aps 給XML配置文件"減肥"的另一個選擇就是使用p名稱空間,從 2.0開始,Spring支持使用名稱空間的可擴展配置格式。這些名稱空間都是基於一種XML Schema定義。事實上,我們所看到的所有b

潭州課堂25班:Ph201805201 第十一課 繼承,多繼承魔術方法,屬性方法 (課堂筆記)

筆記 父類 當前 TE -s __del__ color true ont 繼承: class p : cls_name = ‘p‘ def __init__(self): print(‘正在實例化‘) def __del__(se

C++PrimerPlus學習之記憶體模型名稱空間

標頭檔案 如果檔名包含在尖括號中,則C++編譯器將在儲存標準標頭檔案的主機系統的檔案系統的中查詢。如果檔名包含在雙引號中,則編譯器將在當前目錄下查詢。 使用條件編譯防止多次包含標頭檔案 #ifndef XXX_H_ #define XXX_H_ ... #en

js位置、如何定義、呼叫、變數提升、事件繼承名稱空間、jquery外掛等等

js位置 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js程式碼位置</title> &

一種JavaScript繼承super方法呼叫的實現

在設計實現一種Java、Objective-C與JavaScript混合程式設計的程式設計風格JSAppSugar時,需要 JavaScript 語言支援類導向的程式設計風格,然而JavaScript本身是原型導向(Prototype-based)的,因此在JavaScript中也有很多種實現類繼承

01_Docker概念簡介、元件介紹、使用場景名稱空間

一、簡介 Docker是一個能夠把開發的應用程式自動部署到容器的開源引擎。Docker在虛擬化的容器執行環境中增加了一個應用程式部署引擎。該引擎的目標就是提供一個輕量、快速的環境,能夠執行開發者的程式,並方便高效地將程式從開發者的筆記本部署到測試環境,然後再部署到生產環境。Docker極其簡潔,它所需的全部

Mysql資料庫大量刪除操作及談面向物件中的封裝繼承多型原理(圖)

Mysql資料庫大量刪除操作及談面向物件中的封裝繼承和多型原理(圖) 最近進行資料庫操作,遇到一個問題,就是大量刪除一個數據表中的資料後,由於設定了id是自增的,導致再插入時,預設生成的id會很大,這個時候想要再次插入新的資料,應該怎麼辦呢? 1.明確目前最後一個id的大小 select id fr

動態傳參(*args **kwargs 無敵傳參) 作用域globals locals名稱空間 函式的巢狀 關鍵字nonlcas global

動態傳參(重點) *, ***, ** :形參: 聚合 位置引數* -> 元組 關鍵字** -> 字典實參: 打散 列表, 字串, 元素 -> * 字典 -> ** 形參的順序(重點): 位置 *args(位置引數動態傳參) 預設值 **kwargs

python之動態引數 *args,**kwargs名稱空間

一、函式的動態引數 *args,**kwargs, 形參的順序1、你的函式,為了拓展,對於傳入的實引數量應該是不固定,所以就需要用到萬能引數,動態引數,*args, **kwargs 1,*args 將所有實參的位置引數聚合到一個元組,並將這個元組賦值給args(起作用的是* 並不是args,但是約

作用域名稱空間

名稱空間: 用來存放名字(變數, 函式名, 類名, 引入的模組名)的 1. 全域性名稱空間: 我們在py檔案中自己寫的變數, 函式..... 2. 內建名稱空間: 我們python直譯器提供好的一些內建內容(print, input....) 3. 區域性名稱空間: 在我們執行函式的時候.會產生一個區域性

Python的進階篇(GIL, 深拷貝淺拷貝, 多繼承MRO順序, property屬性, with上下文管理器)

1、GIL(Global Interpreter Lock):   全域性直譯器鎖就是CPython直譯器內部的鎖,與Python語言是沒有關係的。是直譯器為了鎖住解釋其內部的全域性資源,每個執行緒想要執行,首先要獲取GIL,而GIL本身就是一把互斥鎖,造成所有執行緒只能

javascript獲取元素設定元素的屬性樣式

獲取元素屬性 js獲取和設定元素屬性的方式有兩種,setAttribute(getAttribute)和用[]或點獲取 他們的區別為[]或點只能獲取和設定元素自帶(而且必須直接出現在標籤裡面)的屬性,比如id、style、href、src等,若是開發人員自定義的屬性則獲取

-1-2 java 面向物件基本概念 封裝繼承多型 變數 this super static 靜態變數 匿名物件 值傳遞 初始化過程 程式碼塊 final關鍵字 抽象類 介面 區別 多型 包 訪問許可權 內部類 匿名內部類 == 與 equal

java是純粹的面向物件的語言 也就是萬事萬物皆是物件 程式是物件的集合,他們通過傳送訊息來相互通訊 每個物件都有自己的由其他的物件所構建的儲存,也就是物件可以包含物件 每個物件都有它的型別  也就是類 某一特定型別的所有物件都可以接收相同的訊息,因為同一類事物有共同的特性 面向物件開發 •

django URL反向解析名稱空間

一、反向解析URL 在實際的Django專案中,經常需要獲取某條URL,為生成的內容配置URL連結。 比如,我要在頁面上展示一列文章列表,每個條目都是個超級連結,點選就進入該文章的詳細頁面。 現在我們的urlconf是這麼配置的:^post/(?P<id>\d+)。 在前端中,這就需要為H

C++ primer plus 第9章 記憶體模型名稱空間

C++11中,關鍵字auto用於自動型別推斷,但在C語言和以前的C++版本中,auto的含義截然不同,它用於顯式地指出變數Wie自動儲存。 1.自動變數和棧 程式必須在執行時對自動變數進行管理,常用方法:留出一段記憶體,並將其視為棧,以管理變數的增減。程式使用兩個指標來跟蹤棧,一個指標指向棧

dom4j 為生成 XML 的檔案新增 xmlns(名稱空間屬性

    今天在開發sitemap地圖時遇到一個小小問題,就是xmlns屬性的新增!我們知道sitmap 根結點有一些屬性!大體如下: <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:x

黑馬程式設計師--Java學習日記之面向物件(封裝,繼承構造方法)

------- android培訓、java培訓、期待與您交流! ---------- 面向物件思想:     面向過程,以函式為基礎,關注的是實現過程;     面向物件,以物件為基礎,關注的是最終結果; 面向物件思想特點         是一種更符合我們思想習慣的思想

SpringMVC專案中配置xml時一些名稱空間相關的問題,如mvc:annotation-driven的字首 "mvc"未繫結

Q1.元素 "mvc:annotation-driven" 的字首 "mvc"未繫結 辦法:在spring-servlet.xml檔案裡使用<mvc>開頭的標籤時,忘記引入了名稱空間。在xml的beans裡面加入如下程式碼即可 xmlns:mvc="http:

Java的類裝載器(Class Loader)名稱空間(NameSpace)

摘要 Java的類裝載器是Java動態性的核心,本文將向大家簡要介紹Java的類裝載器,及相關的parent delegation模型,名稱空間,執行時包等概念,同時討論一些在學習中容易混淆的問題。  類裝載器的功能及分類 顧名思義,類裝載器是用來把類(class)裝載進JVM的。JVM規範定義了兩種型別的