JavaScript 对象的学习
对象分为对象字面量和对象直接量(plainObject)
js内建多个对象,比如String Date Array等等对象
如何自定义对象
对象的写法
var ff={
name:"kk",
age: 0,
sex: "女",
smoke:function(){
console.log("mklaln");
},
drink: fuunction(){}
},
}
//调用对象的属性值
ff.name;
ff.smoke(); //调用方法并运行
对象内部如何调用自己的属性
var gg={
name:10;
bug:function(){
this.name++; //this为当前对象的属性值
} //此处的this与调用者有很大关系,后期笔记会补充
}
对象的隐式调用
var obj={
name : "abc",
}
//有两种调用方法
obj.name;
obj["name"]; //(隐式调用的 ,内部参数只能是字符串)
对象属性的操作
属性增加
var ff={
age:10;
}
ff.name="jjj"; //给对象增加属性
属性修改/删除操作
ff.age=20;
//使用delete 命令删除对象属性
delete ff.age
对象的方法传参
var kk={
sex:32,
change:function(id){
this.sex+=id;
}
}
kk.change(10);
自定义对象
构造函数的认识
系统自带的构造函数 Object() Array() Number()…
var hh=new Object() 可以返回一构造函数生成对象
返回到当前hh
构造函数的内部原理
function Student(name ,age ,sex){
//this相当于内部的函数对象 var this={}
this.name=name;
this.age=age;
this.sex=sex;
//后面隐式的返回了this对象
}
var student=new Student("kk",17,"nan");
//在函数体最前面隐式的加上this={}
//执行this.xxx=xxx;
//隐式的返回this
自定义对象:
function Person(){
//构造函数的写法,与普通函数写法一样
}
//人为规定,构造函数名最好以驼峰命名法
var person1=new Person();
//new一下将该构造函数返回成对象
构造函数的命名规则
如果为构造函数,最好使用驼峰命名法,普通函数随意
function Car(){
this.name="kkk";
this.height=100;
this.weight=10;
this.run=function(){
this.name="hhh";
}
}
var car=new Car();
var car1=new Car(); //两个对象是不一样的
//就像同一车间出两辆一样的车,两辆车分别为两个不同对象
这两个对象是不一样的
//如果想改变构造方法里的属性值,可以通过参数来改变
function Car( color){
this.color=color;
}
var ff=new Car("red"); //向构造函数传参
//和java雷同
还有一种自定义创建对象的方法
//自定义创建一个对象
//显式创建一个对象
function Person(name ,height){
var that={};//不使用方法内部this对象
//自定义一个
That.name=name;
that.heught=height;
Retuen that;
}
var person=Person();
对象私有化变量
function Deng(name, wife){
var perparety="fffff"; //该变量外部对象是无法访问的
//只有内部方法或内部对象可以访问
this.name=name;
this.wife=wife;
this.divorice=function (){
this.wife=preparety;
}
}
var deng=new Deng('deng','kkkk');
因为创建对象时,构造函数会隐式返回一个this对象
该对象无法操作和访问,只能间接性使用内部属性对其操作