类的设计
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title></title>
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- </head>
- <body>
- <h1>Hello</h1>
- </body>
- <script>
- function Car(model){
- this.model=model;
- this.color="test";
- this.getInfo=function(){
- return this.model+" "+this.color;
- }
- }
- var myCar=new Car("mo");
- console.log(myCar.getInfo());
- </script>
- </html>
构造器模式
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title></title>
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- </head>
- <body>
- <h1>Hello</h1>
- </body>
- <script>
- function Car(model,year,miles){
- this.model=model;
- this.year=year;
- this.miles=miles;
- this.toString=function(){
- return this.model+" has done"+this.miles+" miles";
- };
- }
- var civic=new Car("Honda Civic",2009,20000);
- var mondeo=new Car("Ford Mondeo",2010,5000);
- console.log(civic.toString());
- console.log(mondeo.toString());
- </script>
- </html>
Module模式
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title></title>
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- </head>
- <body>
- <h1>Hello</h1>
- </body>
- <script>
- var basketModule=(function(){
- //basket私有变量,无法从外界访问
- var basket=[]
- function doSomethingPrivate(){
- alert("dosomethingprivate");
- }
- return {
- addItem: function(values){
- basket.push(values);
- }
- doSomething:doSomethingPrivate,
- getTotal:function(){
- var itemCount=this.getItemCount();
- return itemCount;
- }
- }
- })();
- basketModule.addItem({item:"bread",price:0.5});
- console.log(basketModule.getItemCount());
- </script>
- </html>
RevealingModule
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title></title>
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- </head>
- <body>
- <h1>Hello</h1>
- </body>
- <script>
- var myRevealingModule=function(){
- var private="Ben Cherry";
- var publicVar="Hey there!";
- function privateFunction(){
- console.log("Name:"+privateVar);
- }
- function publicSetName(strName){
- privateName=strName;
- }
- function publicGetName(){
- privateFunction();
- }
- return {
- setName: publicSetName,
- greeting:publicVar,
- getName:publicGetName
- };
- }();
- myRevealingModule.setName("Paul Kinlan");
- </script>
- </html>