json对象
数据格式、数据存储【无需内置方法】
{
"xxx":"yyy",
"yyy":"bbb"
}
{"userName":"admin","userName":"admin","userName":"admin"}
面向对象
编程思路(面向对象的编程)
构造函数来实现面向对象编程
// 构造函数:大驼峰
function Hello(){
//console.log(1111)
}
// new 关联字(实例化对象)
var obj= new Hello()
obj.name="xxxx"
obj.doing = function(){
console.log(2222)
console.log(this.name)
}
console.log(obj)
console.log(obj.name)
obj.doing()
{
userName:"admin",
doing:function(){
}
}
{ } == new Object()
对象的定义
【对象的本质是利用程序去描述一段客观存在的事物;】
//json 对象:数据存储(替代关联数组)
//通过字面量的方式定义对象
//对象:属性、方法
//属性:描述对象外在特征(类:内部的变量),当前对象(方法)需要的数据
//方法:突出对象的功能,用于描述对象的行为(类:内部的自定义函数)
var obj = {
"userName":"admin",//userName为键,且为字符串
"sex":"男",//属性
......//可写n个
doing:function(){
console.log()
},
other:()=>{
console.log()
}
//一个对象里面可以存在n个属性和方法
}console.log(obj)
对象的取值"."来进行调用【调用属性】
console.log(obj.userName)//调用上面userName属性
调用方法
obj.doing()
定义对象
var obj = {};//字面量方式
var obj2 = new Object();//实例化构造函数
console.log(obj)
console.log(obj2)
console.log(obj==obj2)//false
动态存值
obj.userName = "admin"
obj.doing = function(){
console.log("111")
}
console.log(obj)
console.log(obj.userName)
obj.doing()
构造函数
String:构建str的操作对象
Array:构建数组对象
Object:构建object对象
this关键字
1、this无法直接确定指向,程序驱动的过程中确定(默认谁调用this指向谁)
2、箭头函数内部无this指向,默认会指向当前函数的上层
对象方法:内部(this指向当前对象)
函数调用:内部(this指向window)
//对象 关键字 this(特指当前对象)
//this无法直接确定指向,默认谁调用指向谁
//面向对象编程 会用到this
var obj = {
data:{
msg:"test..."
},
//doing:function(){}【es5的格式】
//es6简写
doing(){
console.log("111")
//this特指当前对象obj
console.log(this)
console.log(this.data.msg)//打印对象obj内的data对象的msg属性
},
something:()=>{
//箭头函数内部没有this指向,指向上层this
console.log("33333")
console.log(this)
}
}
obj.doing()//方法的调用 //obj->doing == this->obj
obj.something() //obj驱动 -something(箭头没有指向)
补充:json对象 数据存储的场景【es6】
var name = "asdsg"
var obj = {
"userName ":"admin",
name,
}
//数据存储场景
var data ={
sid:"1234567",
name:"张飒",
sex:"男",
like:"女",
tel:"123345436324",
address:"湖北武汉",
subjects:"软件工程"
}
console.log(data.name);
//对象元素读取:(不带引号就是变量)
console.log(data["name"])
//数据遍历
for(k in data){
console.log(k)
console.log(data.k)//不可行
console.log(data[k])
}
es5面向对象编程
构造函数模式:
function hello(){
}
var obj = new hello()
例
//构造函数:大驼峰
function Hello(){
console.log(111)
}
//new关键字(实例化对象)
var obj = new Hello()
obj.name="xxxx"
obj.doing = function(){
console.log(222)
console.log(this.name)
}
console.log(obj)
console.log(obj.name)
object内置API
hasOwnProperty("属性名") //判断当前对象是否存在某个属性