成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

《JavaScript模式》讀書筆記(五)對象創(chuàng)制模式

Yujiaao / 3460人閱讀

命名空間
var MYNAMESPACE = MYNAMESPACE || {};

//構(gòu)造函數(shù)
MYNAMESPACE.Child = function () {}
// 變量
MYNAMESPACE.mystr= "6-ara forerer"

MYNAMESPACE.Person = function(name) {
    this.name = name;
};
//原型
MYNAMESPACE.Person.prototype.getName = function() {
    return this.name;
};

// 使用方法
var p = new MYNAMESPACE.Person("Bob");
p.getName();        // bob
。

命名空間函數(shù)實例

//命名空間實現(xiàn)函數(shù)示例
var MYAPP = MYAPP || {}
MYAPP.namespace = function (ns_string){
    var parts = ns_string.spilt("."),
        parent = MYAPP,
        i;
    //剝離前面的冗余變量
    if(parts[0]==="MYAPP"){
        parts=parts.slice(1)
    }
    for (i=0;i
私有屬性和方法

JS中沒有特殊語法來表示私有或公共屬性的語法,但我們可以用閉包來實現(xiàn)此功能

//構(gòu)造函數(shù)獲得私有性
function Gadget() {
    //私有成員
    var name = "Bob"
    //公有函數(shù)
    this.getName= function(){
        return name
    }
}
var toy = new Gadget()
console.log(toy.name) //輸出undefined
console.log(toy.getName()) //輸出Bob

//對象字面量獲得私有性
var myobj = (function () {
    //私有成員
    var name = "Bob"
    
    //實現(xiàn)公有部分
    return {
        getName: function () {
            return name;
        }
    }
}())
myobj.getName() //輸出Bob

原型私有性
function Gadget() {
    //私有成員
    var name = "Bob"
    //公有函數(shù)
    this.getName= function(){
        return name
    }
}
Gadget.prototype = (function(){
    //私有成員
   var color= black
    return {
       getColor: function (){
           return color
       }
    }
})
模塊模式
//1、建立一個命名空間
MYAPP.namespace("MYAPP.myarray.userarray")
//2、定義該模塊,即時函數(shù)返回具有接口的模塊
MYAPP.myarray.userarray = (function () {
    return {
        //do somting
    }
}())
//3、向公共接口提交一些方法
MYAPP.myarray.userarray = (function () {
    return {
        getName: function (name){
            //
        }
    }
}())

//揭示模塊模式,只暴露最后設(shè)立的API方法
MYAPP.namespace("MYAPP.myarray.userarray")
MYAPP.myarray.userarray = (function () {
    //私有屬性...
    var a =1;
    //私有方法
    var getName = function (name){
        console.log(name)
    }
    return {
        getName:getName
    }
}())

將全局變量導(dǎo)入到模塊中

MYAPP.myarray.userarray = (function (app,glbal) {
  //引用全局對象
 //以及現(xiàn)在被轉(zhuǎn)換為局部變量的命名空間對象
}(MYAPP, this))

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/96966.html

相關(guān)文章

  • JavaScript 設(shè)計模式讀書筆記()——工廠模式

    摘要:假設(shè)有一個生產(chǎn)交通工具的工廠類,它包含生成多種交通工具實例的方法。在使用這個類生產(chǎn)對象的時候,傳入?yún)?shù),在參數(shù)中的屬性規(guī)定我們需要的類型,構(gòu)造函數(shù)就能夠返回我們需要的對象類型了。 一般來說,創(chuàng)建對象的時候我們都習(xí)慣使用new關(guān)鍵字來調(diào)用constructor構(gòu)造函數(shù),但使用這種方式會有一些缺點,首先構(gòu)造器函數(shù)的創(chuàng)建本身就是為了模仿其他一些面向?qū)ο笳Z言的特性,有些人覺得這是non-sen...

    Eirunye 評論0 收藏0
  • javascript高級程序設(shè)計》第六章 讀書筆記javascript對象的幾種創(chuàng)建方式

    摘要:三種使用構(gòu)造函數(shù)創(chuàng)建對象的方法和的作用都是在某個特殊對象的作用域中調(diào)用函數(shù)。這種方式還支持向構(gòu)造函數(shù)傳遞參數(shù)。叫法上把函數(shù)叫做構(gòu)造函數(shù),其他無區(qū)別適用情境可以在特殊的情況下用來為對象創(chuàng)建構(gòu)造函數(shù)。 一、工廠模式 工廠模式:使用字面量和object構(gòu)造函數(shù)會有很多重復(fù)代碼,在此基礎(chǔ)上改進(jìn)showImg(https://segmentfault.com/img/bVbmKxb?w=456&...

    xiaotianyi 評論0 收藏0
  • javascript高級程序設(shè)計》第六章 讀書筆記javascript繼承的6種方法

    摘要:繼承的是超類型中構(gòu)造函數(shù)中的屬性,如上繼承了屬性,但沒有繼承原型中的方法。上述造成的結(jié)果是子類型實例中有兩組超類型的構(gòu)造函數(shù)中定義的屬性,一組在子類型的實例中,一組在子類型實例的原型中。 ECMAScript只支持實現(xiàn)繼承,主要依靠原型鏈來實現(xiàn)。與實現(xiàn)繼承對應(yīng)的是接口繼承,由于script中函數(shù)沒有簽名,所以無法實現(xiàn)接口繼承。 一、原型鏈 基本思想:利用原型讓一個引用類型繼承另一個引用...

    孫吉亮 評論0 收藏0
  • JavaScript 語言精粹》讀書筆記 - 函數(shù)

    摘要:語言精粹讀書筆記第四章函數(shù)函數(shù)字面量函數(shù)字面量包含個部分第一部分,保留字第二部分,函數(shù)名,它可以被忽略。這個超級延遲綁定使得函數(shù)對高度復(fù)用。構(gòu)造器調(diào)用模式一個函數(shù),如果創(chuàng)建的目的就是希望結(jié)合的前綴來調(diào)用,那它就被稱為構(gòu)造器構(gòu)造。 《JavaScript 語言精粹》 讀書筆記 第四章 函數(shù) Functions 函數(shù)字面量 函數(shù)字面量包含4個部分: 第一部分, 保留字 function...

    wdzgege 評論0 收藏0
  • JavaScript模式讀書筆記(二)字面量和構(gòu)造函數(shù)

    摘要:對象字面量定義一個空對象這里的空指的是其自身屬性為空,對象繼承了的屬性和方法添加屬性方法完全刪除屬性方法自定義構(gòu)造函數(shù)用操作符調(diào)用構(gòu)造函數(shù)時,函數(shù)內(nèi)部會發(fā)發(fā)生以下情況創(chuàng)建一個新對象,并且引用了該對象并繼承了該函數(shù)的原型屬性和方法被加入到的引 對象字面量 //定義一個空對象,這里的空指的是其自身屬性為空,dog對象繼承了Object.prototype的屬性和方法 var dog={} ...

    _Zhao 評論0 收藏0

發(fā)表評論

0條評論

Yujiaao

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<