标签: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
原文地址:http://muxiangqiangwei.blog.51cto.com/3832230/1762928