js面向对象学习1

我是菜鸟,老鸟勿看,继承多态等太多概念难以理解,还是从实践中慢慢学吧!争取能大致看懂网上的开源的代码。

--------------

对象的组成:方法和属性

属性关键词:静止的,状态

方法关键词:动态的,过程,处理,带括号

--------------

js中的面向对象不是其他语言那样的面向对象。

 1         <script type="text/javascript">
 2         //定义arr为一个数组(数组也是一个对象实例,所以arr是个对象实例)
 3         var my_arr=[];
 4         //以前变量这样用,var number=10;
 5         //现在定义属性,arr.number = 10; 就是用“点”即可!
 6         my_arr.number = 10;
 7         //定义对象的方法
 8         my_arr.test = function(){
 9             console.log(this);
10             //这里this就是这个数组,直接用数组名也可以
11             //alert(my_arr.number);
12             //alert(this.number);
13         }
14         //这样使用方法
15         my_arr.test();
16     </script>
17
18     

结果是数组有个number属性和test方法,但是数组内容为空,length为0,但是这样alert(my_arr[‘number‘]);也可以弹出10

//TODO 以后再研究数组,但是可见,数组的内容是内容,属性和内容不是一回事,内容是数组里面存了啥,属性是这个数组实例有什么属性。如同,一个是汽车里装了谁谁,一个是汽车有车大灯的感觉。

------------

新建一个纯净的对象实例

 1     <script type="text/javascript">
 2         var my_obj = new Object(); //新建一个对象实例my_obj,换成 var my_obj = {}; 也行,一个意思
 3         my_obj.name = ‘张三‘; //加个属性
 4         my_obj.test = function(){ //加个方法
 5             this.test2(); //对象的A方法中用到对象的B方法
 6         }
 7         my_obj.test2 = function(){
 8             console.log(this.name);
 9         }
10         my_obj.test(); //使用
11     </script>

对象中思考变量作用域的问题

以前学到变量作用域,都是函数和变量,现在加入对象,看看是怎么回事

1     <script type="text/javascript">
2         console.log(my_obj); // 显示undefined,说明解析器中和其他类型一样,根据var,先放个undefined再说
3         var my_obj = {};
4         console.log(my_obj); // 显示 Object {}
5         my_obj.name = ‘张三‘;
6         console.log(my_obj); // 显示Object {name:"张三"}
7     </script>

其实可以这样理解,js解析器,预解析,根据var找到了my_obj,赋值undefined,如果放到不用对象的时候,出个name,需要var name一下,这里由于对象var了,对象下各个目前未定义的属性就相当于已经var但没赋值了,一旦测试都是undefined。第4行,由于还没有赋予name属性,如果查看my_obj.name的话,就是undefined,而第5行赋值,第6行再看,就是“张三”了。

原文地址:https://www.cnblogs.com/html55/p/9757021.html

时间: 2024-10-15 04:49:39

js面向对象学习1的相关文章

js面向对象学习 - 对象概念及创建对象

原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数据属性和访问器属性. 1.数据属性又包含 Configurable //表示能否通过delete删除,默认为true: Enumerable //表示能否通过for-in循环返回属性,默认为true; Writable  //表示能否修改属性的值,默认为true; Value            

js面向对象学习笔记之二(debug调试方法)

1. js的调试 很明显,js 调试只能够通过 alert 进行打印 alert(id); 对于复杂的数据类型,我们可以通过将其转换成json格式 再进行弹出 alert(JSON.stringify(data)); 2. DOM 信息调试 对于我们需要获取到的信息 可以根据要求打印到dom元素里 document.write(data); //会覆盖整个文档 3. 在程序端调试 直接在程序端打印所需信息后退出 var_dump() print_r() 4. js 其他错误信息处理 /*====

js面向对象学习笔记之八(cookie使用 与 url的get参数获取)

1. COOKIE的使用 <script src="http://code.jquery.com/jquery-1.9.0.min.js"></script> <script src="./jquery.cookie.js"></script> <script> //这个设置 与 移除 是一一对应的 默认cookie 作用域为当前文件夹下 $.cookie("favourite-city"

js面向对象学习笔记之六(变量)

[1.值对应的boolean] false 布尔值 false 对象 null 数字 NaN (not a number) 数字 0 初始值 undefined 空字符串 "" true 字符串 "0" 或其他 非以上六种值 [2. null 与 undefined 的不同] null 实质是被赋予的 空的对象 或 数组 undefined 则是 声明或者未声明的变量 但未赋值的变量初始值 所以并不是 使用了 var 声明就不会出现undefined 所有没有初始值

js面向对象学习笔记之一(类与对象)

1. javascript中的类即函数 /*==============================类即函数=====================================*/ function People(name,sex,addr){ this.name = name; this.sex = sex; this.addr = addr; this.foo = function(){ alert(this.name + this.sex+this.addr); } } var

js面向对象学习总结

1.函数作为参数进行传递 function a(str,fun){ console.log(fun(str)) }; function up(str){ return str.toUpperCase(); }; function down(str){ return str.toLowerCase(); }; a('Hello,World !',up) //HELLO,WORLD ! a('Hello,World !',down) //hello,world !

js面向对象学习笔记之四(Date 对象)

//日期字符串转时间戳 var date="2015-03-18"; date = new Date(Date.parse(date.replace(/-/g, "/"))); date = date.getTime(); document.write(date); var date = new Date(); //返回当前的时间对象 getDate() //日 从 Date 对象返回一个月中的某一天 (1 ~ 31). getDay() //星期 从 Date 对

js面向对象学习笔记之五(定时器)

话不多说 ,直接上代码 : function set(a,b,c){ alert(a); alert(b); alert(c); } //一次定时 setTimeout(set,3000,1,2,30); //三秒后 依次弹出 1,2,30 //循环定时 setInterval(set,3000,4,5,90); //每隔三秒 依次弹出 4,5,90

js面向对象学习笔记之九(BOM 与 DOM 中常用属性分析)

一  BOM对象 window 的 相关属性 1. 用户配置机器配置对象 navigator navigator.userAgent //该属性可以查看用户机器浏览器的配置 "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4" 2. 用户uri访问地址 locati