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

javascript面向对象编程笔记

时间:2016-04-12 14:26:25      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:javascript

首先看一个页面常用的js代码骨架

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>js面对对象编程</title>
</head>
<body>
<script type="text/javascript" src="../js/lib/jquery-1.11.0.js"></script>
<script type="text/javascript">
;(function($){
    var Obj = function(){//定义一个类
        console.log(this);//==>Obj
        this.init();
    }
    
    Obj.prototype = {//对象原型
        ObjName:"我是一个对象",
        saySomething:function(){
            console.log(this.ObjName);
        },
        init:function(){
            this.saySomething();
        }
    };
    
    var Obj2 = function(){}
	Obj2.prototype = new Obj();//类的继承
	console.log("Obj2.ObjName:"+new Obj2().ObjName); //==>Obj2.ObjName:我是一个对象
	Obj2.prototype.ObjName = "我继承了Obj.ObjName并且重写了它";
	console.log("Obj2.ObjName:"+new Obj2().ObjName); //==>Obj2.ObjName:我继承了Obj.ObjName并且重写了它
	Obj2.prototype.print = function print(str){
	    console.log("输出"+str);
	};
    
    $(document).ready(function($) {
        var obj = new Obj();//实例化类 ==>输出:我是一个对象
        var obj2 = new Obj2();//实例化类 ==>输出:我是一个对象
	console.log("Obj2.ObjName:"+obj2.ObjName); //==>Obj2.ObjName:我继承了Obj.ObjName并且重写了它
	obj2.print(‘试试‘);//==>"输出试试""
        console.log(this);//==>#document
    });
    
    console.log(this);//==>Window
})(jQuery);
console.log(this);//==>Window
</script>
</body>
</html>



代码分析

一、立即执行函数表达式IIFE

        IIFE immediately-invoked function expression 

    写法一(function($){...})(jQuery);

    写法二(function($){...}(jQuery));

    其作用相当于

                   var a = function($){...};

                   a(jQuery);

                   让编写的代码能立即执行。

    

二、function(){}

      在javascript中定义类函数都是funciton。


三、Obj.prototype类原型

      可以像上面那样写在一起也可以分开写成

      Obj.prototype.a = "我是字符串";

      Obj.prototype.b = {

                                        name:"我是对象"

                                       };

      Obj.prototype.c = [‘我是‘,‘数组‘];

      Obj.prototype.d= function(){

                                       return "";

                                       我是函数

                                         };


四、$(document).ready(function(){...});

       因为html文档是顺序执行的所以如果代码是写在所有文档元素之后这个$(document).ready()可以省略 


五、js代码前的分号;或加号(+)是为了避免前一个js文档如果没有用分号结尾造成的文档错误。



本文出自 “木香蔷薇” 博客,转载请与作者联系!

javascript面向对象编程笔记

标签:javascript

原文地址:http://muxiangqiangwei.blog.51cto.com/3832230/1762928

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