javascript數據類型,定義方法,(工廠模式及閉包的應用)

js數據類型分爲兩大類:一  值類型閉包

                                       二 引用類型函數


一 值類型  string  number  boolean null undefined
this

   eg:    spa

var str = 'aaa'
var num = 123
var bool = true
var n = null
var und = undefined

console.log(typeof str) //string
console.log(typeof num)  //number
console.log(typeof bool) //boolean
console.log(typeof n) //object
console.log(typeof und) //undefined

 

二 引用類型  Array   object   functioncode

  eg: Array
//建立Array的三種方式
//第一種
var arr = new Array()
arr[0] ='aa'
arr[1] = 'bb'
arr[2] = 'cc'
console.log(arr)  //[ 'aa', 'bb', 'cc' ]
//第二種
var arr = new Array('aa', 'bb', 'cc')
//第三種
var arr = ['aa','bb','cc']

 

   eg:objectblog

//建立object的三種方式
//第一種
var preson = new Object()
preson.name = '張三'
preson['age'] = 20 // 方括號中的鍵名加引號,不然會報錯
console.log(preson) // { name: '張三', age: 20 }

//第二種 字面量
var preson_one = {}
preson_one.name = 'jack'
preson_one.action = function(){
    console.log(this.name)  //jack
}
preson_one.action()
console.log(preson_one)  //{ name: 'jack', action: [Function] }
//嵌套字面量 簡寫形式
var preson1 = {
    name: 'jack',
    action: function(){
        console.log(this.name)  //jack
    }
}
preson1.action()

//第三種 工廠模式
function createobj(name){
    //原材料
    var obj = new Object()
    // 加工
    obj.name = name
    obj.fun = function(){
        console.log(this.name)
    }
    return obj
}
var a = createobj('李四')
a.fun()
console.log(a)

//第四種 構造函授
function createobj2(name){
    this.name = name
    this.fun = function(){
        console.log(this.name)
    }
}
var a2 =new createobj2('大王')
a2.fun()

//第五種 公有和私有 閉包的應用
function preson3(name){
    //私有
    var name = name
    var fun = function(){
        console.log(name)
    }
    return{ //公有   //閉包
        say:fun
    }
}
var a3 = preson3("小美")
a3.say() 

eg:functionstring

//function
//第一種 函數定義
function eg(){
    alert(123)
}
eg()

//第二種 函數表達式
 var eg2 = function (){
     alert(456)
 }
 eg2()

//函數表達式只能在函數後面調用
相關文章
相關標籤/搜索