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

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;
时间: 2024-12-29 12:47:43

JavaScript学习之路---基础、对象的相关文章

我的javascript学习之路(一)对象之基础

做了2个多月的ajax项目,对js的学习觉得了深入了不少,把自己的一些学习的经验贴出来,希望对初学者有所帮助,也希望大家能指出我的错误之处或者不当之处. javascript 是基于对象的语言,为什么这么说呢,需要仔细思考. js的单根继承体系需要仔细了解,我觉得在js的世界里本身没有类的概念,他只有对象Object,不像java语言本身就有了Object然后又有Class,js中我们可以自己根据他的语言来构件类这一对象,因为没有语言本身的支持,所以方法就各种各样了,但是只要我们掌握了js的本质

Javascript学习--------认识window窗口对象

window对象: Window 对象表示浏览器中打开的窗口. 可以通过window对象设置窗口的大小,位置等. 还可以控制是否加载网页等. window对象集合: 集合 描述 frames[] 返回窗口中所有命名的框架. 该集合是 Window 对象的数组,每个 Window 对象在窗口中含有一个框架或 <iframe>.属性 frames.length 存放数组 frames[] 中含有的元素个数.注意,frames[] 数组中引用的框架可能还包括框架,它们自己也具有 frames[] 数

JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例

JavaScript学习总结(一)--延迟对象.跨域.模板引擎.弹出层.AJAX示例 目录 一.AJAX示例 1.1.优点 1.2.缺点 1.3.jQuery AJAX示例 二.延迟对象(Deferred) 2.1.回调函数 2.2.deferred.done 三.跨域 3.1.什么是跨域 3.2.JSONP跨域 3.3.jQuery使用JSONP跨域 3.4.跨域资源共享(CORS) 3.5.小结 四.弹出层 五.模板引擎 5.1.Hello World 5.2.方法 5.3.与AJAX结合应

JavaScript学习记录day9-标准对象

JavaScript学习记录day9-标准对象 [TOC] 在JavaScript的世界里,一切都是对象. 但是某些对象还是和其他对象不太一样.为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一个字符串: typeof 123; // 'number' typeof NaN; // 'number' typeof 'str'; // 'string' typeof true; // 'boolean' typeof undefined; // 'undefined' typ

JavaScript学习笔记——语法基础1.2

一.数组 1.通常情况下,一个变量只能有一个值,若想拥有多个值,就需要使用数组,换句话来说,数组是一个特殊的容器,它可以根据需求存放一个或者多个值.2.数组可以用关键字Array来声明,声明的同时,可以设定它的长度length. var myArray = Array(3); document.write(myArray.length); //输出3 3.我们可以在声明数组的同时对它进行填充,也可以在声明之后进行填充,当然,我们需要对新填充的值指定存放位置,需要注意下标是从0开始计数的. Jav

JavaScript学习笔记——语法基础1.4

一.函数 函数对于任何一种编程语言都是非常核心的概念,它的便利之处在于,我们可以通过函数名的随时调用( 如:functionName() ),就可以执行花括号中的语句,这样就可以实现你的想法.换一种说法,函数就像是哈利波特的通关密语,哈利波特只需要念一句正确的通关密语,就可以打开密室的大门,密语就像是函数,哈利波特在念它的时候就像是在调用这个函数,这个函数的作用同时也是哈利波特的目的就是打开密室的大门. 1.定义函数的语法: function functionName (arguments){

JavaScript学习12:事件对象

JavaScript事件的一个重要方面是它们拥有一些相对一致的特点,可以给我们的开发提供更多的强大功能.最方便和强大的就是事件对象了,它们可以帮你处理鼠标和键盘方面的很多事情,此外我们还可以修改一般事件的捕获或者冒泡流的函数. 在上篇博客中我们已经对事件有了一个基本的认识,结尾处我们提到了事件处理函数.事件处理函数的一个标准特性是,以某些方式访问的事件对象包含有关于当前事件的上下文信息.事件处理由三部分组成:对象.事件处理函数=函数. 那么事件对象又是什么呢?它在哪里? 当触发某个事件时,会产生

JavaScript学习笔记——1.基础知识

1.在html中使用js <script>do something</script> <script src="test.js"></script> <a href="javascript:do something">Link</a> <button onclick="do something">Button</button> PS:一个html文件中

python学习之路基础篇(第四篇)

一.课程内容回顾 1.python基础 2.基本数据类型  (str|list|dict|tuple) 3.将字符串“老男人”转换成utf-8 s = "老男人" ret = bytes(s,encoding="utf-8") print(ret) ret1 = bytes(s,encoding="gbk") print(ret1) #程序运行结果如下: b'\xe8\x80\x81\xe7\x94\xb7\xe4\xba\xba' b'\xc0