javascript数据类型,定义方法,(工厂模式及闭包的应用)

js数据类型分为两大类:一  值类型

                                       二 引用类型


一 值类型  string  number  boolean null undefined

   eg:    

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   function

 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:object

//创建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:function

//function
//第一种 函数定义
function eg(){
    alert(123)
}
eg()

//第二种 函数表达式
 var eg2 = function (){
     alert(456)
 }
 eg2()

//函数表达式只能在函数后面调用
原文地址:https://www.cnblogs.com/carry-carry/p/11624810.html