您的位置:首页 > Web前端 > JavaScript

js对象中属性绑定和new this

2016-11-20 17:08 253 查看
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
//------------------------自定义对象--------------------------
//需求:单个自定义对象。
//缺点:传单单个对象的时候还好,创建多个多线的时候变得非常繁琐
//创建多个对象,for循环不能修改名字的值。函数也可以创建多个对象。
var student = new Object();
//    console.log(student);
student.name = "张三";
//    student.age = 18;
//    student.address = "辽宁省铁岭市莲花乡池水沟子";
student.sayHi = function () {
console.log(this.name+"说:大家好!");
}
console.log(student.name);
student.sayHi();

//-----------------------自定义多个对象----------------------
//需求:多个自定义对象。
//缺点:代码冗余,方式比较low。当我们创建空白对象的时候:new Object();
//利用构造函数自定义对象。
var stu1 = createSudent("张三");
var stu2 = createSudent("李四");
console.log(stu1);
stu1.sayHi();
console.log(stu2);
stu2.sayHi();
//创建一个函数
function createSudent(name){
var student = new Object();
student.name = name;
student.sayHi = function () {
console.log(this.name+"说:大家好!");
}
return student;
}

//-----------------------new和this-----------------------
//this
//    一、this只出现在函数中。
//    二、谁调用函数,this就指的是谁。
//    三、new People();   People中的this代指被创建的对象实例。

//    var aaa = new Object();
//new
//1.开辟内存空间,存储新创建的对象( new Object() )
//2.把this设置为当前对象
//3.执行内部代码,设置对象属性和方法
//4.返回新创建的对象

var aaa = new stu();
console.log(aaa);
aaa.say();

function stu(){
this.say = function () {
console.log(this);
}
}

//-------------------------属性绑定---------------------------

var stu = new Object();
var aaa = "age";

//对象名.属性
stu.name = "拴柱";请求轻求保温
//    stu.aaa = 19;
//对象名[变量]   对象名[值]
stu[aaa] = 20;
stu[0] = "你好";
console.log(stu);

//    var arr = [1,2,3];
//    arr[0] = 4;

</script>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: