分享

2、JS面向对象之属性

 印度阿三17 2019-04-03
  1. 属性的删除
  2. 属性的检测
  3. 枚举属性
  4. 序列化对象
//属性的设置和获取 ./[] (区别: .是取自身的属性,[]可以是变量)
var obj = {}
	obj.name = 'Tina'
	obj['age'] = '26'
	//打印
	console.log(obj.name) //Tina
	console.log(obj['name']) //Tina
	console.log(obj.age) //26
	console.log(obj['age'])//26
	
	// 访问一个变量
	var nameA = 'name'
    console.log(obj[nameA]) //相当于 console.log(obj['name']), 打印出 Tina

1、属性的删除

	// 属性的删除
	var o= {}
	o.name = 'Tina'
	o['age'] = '26'
	
	//写法1
    delete o.name 
    console.log(o.name) //underfined
    
    //写法2   
    delete o['name']
    console.log(o['name']) //underfined
    

2、属性的检测

	//属性的检测
	var o = {}
	o.name = 'Tina'
	o.age = 'underfined'
	//方法1 in运算符
	console.log('name' in o) // true
	//方法2 hasOwnProperty()
	console.log(o.hasOwnProperty('name')) //true
	//方法3 != underfined  对值进行比较(不推荐使用,比如age)
	console.log(o.name != 'underfined') //true
	/*
	补充
	= 赋值
	== 匹配判断
	=== 匹配判断,对类型进行判断
*/

3、枚举属性(for in多用于对象,for &each多用于数组)

// for in
//对象
var o = {x:1,y:2,z:3}
for(a in o){console.log(a)} // 打印出key: x y z
for(a in o){console.log(o[a])} //打印出value:  1 2 3
//数组
var arr = [{x:1},{y:2},{z:3}]
for(a in arr){console.log(a)} // 打印出索引: 0 1 2
for(a in arr){console.log(arr[a])} //打印出对象key: value
//同步
for(var i = 0; i<10; i  ) {
	console.log(i) //打印出索引0~9
}
//异步
var data = msg; //假设已取到后台返回的值
$.each(data, function(indedx, item) {
	alert(data)
})
alert(data)//如果此alert先出现就改用for
})

4、序列化对象

//序列化对象
var o = {x:1,y:2,z:3}
var str = JSON.stringify(o) //转换为字符串{"x":1,"y":2,"z":3}
console.log(typeof(str)) //string
var obj = JSON.parse(str)) //{x: 1, y: 2, z: 3}
console.log(typeof(obj)) //object

//深拷贝(双胞胎)浅拷贝(影子)
JSON.parse();//深拷贝

/*浅拷贝*/
var o2 = {x:1,y:2,z:3}
var p = o2
o2.x = '111'
console.log(p) // {x:111,y:2,z:3}

/*---------------*/
function getFormData() {
    var _name = 'Tina'
    var _age = '26'
    var data = {
        "name":_name,
        "age":_age    }
    return data
}
//提交
$('.btn-submit').on('click',function () {
    var data = getFormData()
    console.log(JSON.stringify(data)) //{"name":"Tina","age":"26"}
    $.ajax({
        type: 'POST',
        url: url,
        cache: false,
        data: {dataJson:JSON.stringify(data)}, //传参
        dataType: 'json', //返回值类型
        success:function(msg){
            //
        },
        error:function(){
            //
        }
    })
})

来源:http://www./content-4-155601.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多