搜索
写经验 领红包
 > 电器

js对象用法(js对象类型的语法规则)

导语:Js基础30:对象(下)

js对象用法(js对象类型的语法规则)

5、工厂函数创建对象

工厂?流水线,批量制造

// 使用内置对象创建对象varobj=newObject();obj.name=&39;;obj.sayName=function(){console.log(&39;);}

如果这段代码需要重复执行,是不是可以封装成函数

functioncreateObj() {varobj=newObject(); obj.name=&39;; obj.sayName=function(){   console.log(&39;); }}

但是这样创建的对象,永远都是一个对象,这个时候应该想的到,抽取公共部分作为参数,可以传不同值进来,

我们需要得到这个封装好的对象,那么就需要返回这个对象。

functioncreateObj(name) { varobj=newObject(); obj.name=name; obj.sayName=function(){   console.log(&39;+name); } returnobj;}

工厂函数的优点:值是活的,可以批量操作,减少重复代码。

6、使用对象的属性和方法

访问对象的属性:对象.属性;

调用对象的方法:对象.方法名(参数);

// 得到对象的名字,属性可以当成变量使用console.log(obj.name);// 调用对象的方法,方法的本质是函数obj.sayName();

永远记住:只有对象才能点属性和方法

练习:

用对象来描述,它的名字叫来福,它有黄色的毛hair,它有四条腿leg和一条尾巴tail,它喜欢吃骨头,喜欢跑到隔壁村找翠花创建三个学生对象,并且输出学生的学号、姓名、年级和年龄

7、键的方式访问对象的属性和有方法

语法:对象[属性名]

varobj={};obj[&39;]=&39;;obj[&39;]=function(){console.log(&39;+obj[&39;]);}obj[&39;]();

8、遍历对象

语法:

for(varkeyinobj){ console.log(key);// 键名 console.log(obj[key]);// 每个key对应的键值}

代码举例:

varobj={name:&39;,age:12,gender:&39;};for(varkeyinobj){console.log(key);console.log(obj[key]);}// 一般来说,需要我们处理的数据,只有属性没有方法

9、数据安全

之前学习函数的时候,函数可以创造一个局部作用域,把数据进行保护,不让外部的数据对我们的数据进行污染。

那么在有些情况下,就是需要使用全局变量,有不想造成全局变量的污染。。。那么怎么做的?

这里给大家介绍一个概念——对象封装!

// 全局变量 全局作用域的函数,都可以封装进对象里,这样就只有一个全局变量了,就是我们创建的对象objvarobj={myName:&34;, num:1, loginStatus:true}

总结:

1.对象不仅仅是一种语法,更是一种思想,一种方便解决问题的思想

2.使用对象来表示一个可以帮我做事的角色 ,我们只要调用对象的方法和属性,就能实现效果

3.对象语法使用属性描述事物的特征,使用方法描述事物的行为

练习:

有数据vardatas=[   {name:&39;,age:18,gender:&39;},   {name:&39;,age:19,gender:&39;},   {name:&39;,age:17,gender:&39;} ];根据上面的数据,在页面中显示一张表格,如下图

代码

vardatas=[   {name:&39;,age:18,gender:&39;},   {name:&39;,age:19,gender:&39;},   {name:&39;,age:17,gender:&39;} ] varstr=`<table border=&34;>         <tr>           <th>姓名</th>           <th>年龄</th>           <th>性别</th>         </tr>` for(vari=0;i<=datas.length;i++) {   str+=`<tr>`;   varobj=datas[i]   for(varkeyinobj) {     str+=`<td>${obj[key]}</td>`;   }   str+=`</tr>`; } str+=`</table>`; // 在页面中输出这个表格的字符串 document.write(str);

本文内容由快快网络小竹整理编辑!