javascript 的1点总结

javascript 的一点总结Javascript面向对象的特性(总结自:http://www.cnblogs.com/zhangziqiu/archive/2009

javascript 的一点总结

Javascript面向对象的特性

(总结自:http://www.cnblogs.com/zhangziqiu/archive/2009/05/26/jQuery-Learn-javascript.html?,在此仅作为学习笔记)

?

1、创建一个类

?

var obj = new Object(); //其中new可以省略

?

?

2、创建属性,不用声明直接赋值:

obj.property1 = "I'm property1.";

?

3、嵌套属性

?var objectB = objectA;

objectB.other = objectA;//此时下面三个值相当, 并且改变其中任何一个值其余两个值都改变objectA.name;objectB.name;objectB.other.name;

?

4、使用索引

?

//如果objectA上有一个属性名称为"school.college", 那么我们没法通过"."访问,因为"objectA.school.college"语句是指寻找objectA的school属性对象的college属性.//这种情况我们需要通过索引设置和访问属性:         objectA["school.college"] = "BITI";         alert(objectA["school.college"]); //下面几个语句是等效的:        objectA["school.college"] = "BITI";        var key = "school.college"        alert(objectA["school.college"]);        alert(objectA["school" + "." + "college"]);                alert(objectA[key]);

?

?

5、JSON 格式语法

?

        //JSON        var objectA = {            name: "myName",            age: 19,            school:            {                college: "大学",                "high school": "高中"             },            love:["编程","唱歌","游玩"]        }

?

?可用objectA.school["high school"];objectA.school.college;objectA.like[1]; 等来访问。。。

?

6、静态方法与实例方法

?

        function theStaticClass() { }; //声明一个类        theStaticClass.staticMethod = function() { alert("static method") }; //创建一个静态方法        theStaticClass.prototype.instanceMethod = function() { "instance method" }; //创建一个实例方法

?对于静态方法可以直接调用:

?

?

var instance = new staticClass();//首先实例化        instance.instanceMethod(); //在实例上可以调用实例方法

?

7、全局对象window属性

在页面中创建的类

?

<script type="text/javascript">        var objectA = new Object();</script>

?

是个全局变量。实际上全局变量objectA是创建在window对象上,所以可以用window.objectA来引用。

?

8、函数的实现

?

        function myMethod()        {            alert("Hello!");        }        window.myMethod = function()        {            alert("Hello!");        }        myMethod = function()        {            alert("Hello!");        }

?

?

9、"this"可以指全局的window,也可以指当前变量或类

?

        var o1 = { name: "o1 name" };        window.name = "window name";        function showName()        {            alert(this.name);         }                        o1.show = showName;        window.show = showName;        showName();//得到window name        o1.show();//得到o1 name        window.show();//得到window name

?

?

10、javascript中的闭包

简单表达:

闭包就是function实例以及执行function实例时来自环境的变量.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <title></title></head><body>    <div id="divResult"></div>    <script type="text/javascript">        function start()        {            var count = 0;            window.setInterval(function()            {                document.getElementById("divResult").innerHTML += count + "<br/>";                count++;            }, 3000);        };        start();    </script></body></html>

?结果是:

0

1

2

3

……

因为count变量是setInterval中创建的匿名函数(就是包含count++的函数)的闭包的一部分!