码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript学习之路---基础、对象

时间:2016-08-16 11:48:58      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

 

 1.通过继承(Object.create())创建对象的好处?
防止函数库无意间或恶意的修改那些不受你控制的对象。不是将对象直接传入到函数,而是将它的继承对象传入,
函数读取到的实际上是继承来的值,如果给继承对象赋值,则影响到的是继承的对象,而不是当前对象本身。

 1 var o = {};
 2 o.x = 1;
 3 var p = inherit(o);
 4 p.y = 2;
 5 var q = inherit(p);
 6 q.z = 3;
 7 var s = q.toString();    //3 x为o的属性,y为p的属性,z才是q的属性
 8 q.x + q.y
 9 
10 function inherit(p) {
11   if(p == null) throw TypeError();
12   if(Object.create) return Object.create(p);
13   var t = typeof p;
14   if(t !== "objcet" && t !== "function") throw TypeError();
15   function f() {};
16   f.prototype = p;
17   return new f();
18   
19 }

 2.如何防止查询属性报错

1 var len = book.subtitle.length; //null 和 undefined都没有属性,报错
2 //冗余但很易懂的方法
3 var len = undifined;
4 if(book) {
5     if(book.subtitle) len = book.subtitle.length;
6 }
7 //一种更简练的常用方法。
8 var len = book && book.subtitle && book.subtitle.length;

 

JavaScript学习之路---基础、对象

标签:

原文地址:http://www.cnblogs.com/terminator-LLH/p/5775820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!