JavaScript 对象和面向对象概述(自定义对象)


1.  JS中的对象(Object)
创建空白对象:
var  obj = new Object();

对象里面的变量叫属性,对象外面的变量叫变量
对象里面的函数叫方法,对象外面的函数叫函数
但前提是要给对象绑定属性和方法



2.  构造函数(就是为了创建对象实例)
① 可以创建对象实例的函数,为新对象进行初始化(设置对象的属性)。
② 区别于普通函数, 首字母大写



3.  创建自定义对象
创建单个自定义对象:
//创建单个自定义对象
var stu = new Object();

//为该对象绑定属性
stu.name = "杨哈哈";
stu.age = 18;
stu.gender = "男";

//为该对象绑定方法
stu.study = function () {
    console.log("我正在学习!");
}


创建多个自定义对象:
函数是可以重复执行的代码块,把创建对象的方法封装到函数中,然后把变化的值设计成参数
function createStu(name,age){
    //每次调用函数,创建一个新的对象
    var stu = new Object();
    stu.name = name;
    stu.age = age;
    stu.study = function () {
        //this代表函数的调用者
        console.log(this.name + ":我正在学习");
    }
    return stu;
}


构造函数法创建自定义对象:
function Stu(name,age){
   this.name = name;
   this.age = age;
   this.study = function () {
        console.log(this.name + ":我正在学习");
   }
}

var aaa = new Stu("carrie",18);

console.log(typeof aaa);//Object类型,而非Stu类型,因为js是基于对象的语言,而非面向对象的语言,所有新对象实际上在底层都是Object类型
console.log(aaa);
console.log(aaa.name);
console.log(aaa.age);
aaa.study();

This
① this只出现在函数中。(arguments也只出现于函数中)
②  谁调用函数,this就指的是谁。
③ new People();   People中的this代指被创建的对象实例。
new
① 开辟内存空间,存储新创建的对象( new Object() )
② 把this设置为当前对象
③ 执行内部代码,设置对象属性和方法
④ 返回新创建的对象




4.  对象字面量

var obj = {aaa: 1, bbb: 2, ccc: 3, ddd: 4};




5.  json

var json = {“aaa”: 1,“bbb”: 2,“ccc”: 3,“ddd”: 4}

- Json由{ }和key:value以及逗号三部分组成(只有一个键值对key:value时,可以没有逗号)。
- 对象字面量定义方法和json很像,只有一点不同,json的key要求必须加“”
- json的取值有两种方式,json .属性名,或 json["属性名"]
- json中每个属性的属性值如果是数字,就是number类型,如果是字符串,就是string类型
- 如果调用一个函数后,可以使用 .属性的方法获取一个值,那么他的返回值,一定是一个json




6.  for...in...

var json = {“aaa”: 1,“bbb”: 2,“ccc”: 3,“ddd”: 4}
for(var key in json){
    console.log(key);//key代表对象的所有属性
    console.log(json[key]);//json[key]代表对象的所有属性值
}

注意:
如果一个对象的属性都是数值而且有length属性,遍历的时候使用 for 循环和 for in 的方式都可以;
如果一个对象的属性都是单词不是数值,在遍历时只能通过 for in 的方式。




7.  参数和传值问题
① 简单类型数据做参数,函数内部对参数的修改不影响外部变量。
简单类型传数值
② 复杂类型数据做参数,函数内部对参数的修改会影响外部变量。
复杂类型传地址








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值