> 自然
js中对象的含义(js对象类型的语法规则)
导语:Js基础30:对象(下)
5、工厂函数创建对象
工厂?流水线,批量制造
// 使用内置对象创建对象 var obj = new Object(); obj.name = &39;; obj.sayName = function(){ console.log(&39;); }
如果这段代码需要重复执行,是不是可以封装成函数
function createObj() { var obj = new Object(); obj.name = &39;; obj.sayName = function(){ console.log(&39;); } }
但是这样创建的对象,永远都是一个对象,这个时候应该想的到,抽取公共部分作为参数,可以传不同值进来,
我们需要得到这个封装好的对象,那么就需要返回这个对象。
function createObj(name) { var obj = new Object(); obj.name=name; obj.sayName = function(){ console.log(&39;+name); } return obj; }
工厂函数的优点:值是活的,可以批量操作,减少重复代码。
6、使用对象的属性和方法
访问对象的属性:对象.属性;
调用对象的方法:对象.方法名(参数);
// 得到对象的名字,属性可以当成变量使用 console.log(obj.name); // 调用对象的方法,方法的本质是函数 obj.sayName();
永远记住:只有对象才能点属性和方法
练习:
用对象来描述,它的名字叫来福,它有黄色的毛hair,它有四条腿leg和一条尾巴tail,它喜欢吃骨头,喜欢跑到隔壁村找翠花创建三个学生对象,并且输出学生的学号、姓名、年级和年龄7、键的方式访问对象的属性和有方法
语法:对象[属性名]
var obj = {}; obj[&39;] = &39;; obj[&39;] = function(){ console.log(&39; + obj[&39;]); } obj[&39;]();
8、遍历对象
语法:
for(var key in obj){ console.log(key);// 键名 console.log(obj[key]); // 每个key对应的键值 }
代码举例:
var obj = { name : &39;, age : 12, gender : &39; }; for(var key in obj){ console.log(key); console.log(obj[key]); } // 一般来说,需要我们处理的数据,只有属性没有方法
9、数据安全
之前学习函数的时候,函数可以创造一个局部作用域,把数据进行保护,不让外部的数据对我们的数据进行污染。
那么在有些情况下,就是需要使用全局变量,有不想造成全局变量的污染。。。那么怎么做的?
这里给大家介绍一个概念——对象封装!
// 全局变量 全局作用域的函数,都可以封装进对象里,这样就只有一个全局变量了,就是我们创建的对象obj var obj = { myName:, num:1, loginStatus:true }
总结:
1.对象不仅仅是一种语法,更是一种思想,一种方便解决问题的思想
2.使用对象来表示一个可以帮我做事的角色 ,我们只要调用对象的方法和属性,就能实现效果
3.对象语法使用属性描述事物的特征,使用方法描述事物的行为
练习:
有数据 var datas = [ { name: &39;, age: 18, gender: &39; }, { name: &39;, age: 19, gender: &39; }, { name: &39;, age: 17, gender: &39; } ]; 根据上面的数据,在页面中显示一张表格,如下图
代码
var datas = [ { name: &39;, age: 18, gender: &39; }, { name: &39;, age: 19, gender: &39; }, { name: &39;, age: 17, gender: &39; } ] var str = `<table border=> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> </tr>` for (var i = 0; i <= datas.length; i++) { str += `<tr>`; var obj = datas[i] for (var key in obj) { str += `<td>${obj[key]}</td>`; } str += `</tr>`; } str += `</table>`; // 在页面中输出这个表格的字符串 document.write(str);
本文内容由快快网络小玥创作整理编辑!