js对象 object【js是基于对象的语言】

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("属性名") //判断当前对象是否存在某个属性

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容