js 杂事

  自己一直是做后端,js这东东虽然常写,但都是基于jquery 写写简单Dom的操作。渐行渐远.....js一些基础被遗忘。下面杂文乱记js,根据自己理解记下js中的对象、函数等知识,以备后需只用。麻烦各位大侠抛砖引玉。

     一、对象

   1.先看下js数据类型:字符串、数字、布尔、数组、对象、Null、Undefined。那何为对象呢,是不是像C#所有类型都是继承object类型,当然js好像没听说过继承的概念。我也才知道new objcet()和方法对可以作为js对象。其他的还有什么可称对象呢?还请各位提示。

   2.对象创建和基本使用:创建方式 :(1)对象初始化方式。(2)函数式 。(3)new object()。属性访问方式 :(1)obj["proName"] (2)obj. proName 。方法:obj.。

   (1)对象初始化方式创建对象

技术分享
 1  //1.初始化方式创建对象
 2         var PeopleInit = {
 3             age: 12,
 4             name: "tom",
 5             sayHello: function () {
 6                 return "name:" + this.name + "----age:" + this.age;
 7             }
 8         };
 9         PeopleInit.name = "jack"; 
10        // var peple1 = new PeopleInit();//对象不需要new
11         document.writeln(PeopleInit.sayHello() + "<br/>");
View Code
 

  (2)函数式 :可以通过原型链附件属性、方法等。

技术分享
 1  //2.函数方式创建  如果PeopleMethod方法对象和它的原型链都有相同的属性,会先访问方法对象中的属性,
 2         //再去原型链中找属性,对象的方法查找方式亦同。
 3        function PeopleMethod() {
 4             this.age = 18;
 5           // this.name = "jack";
 6             this.sayHello=function(){
 7                 return "name:" + this.name + "----age:" + this.age;//没有name 咋办 找原型链吧
 8             };
 9         }
10        PeopleMethod. prototype = {
11             name:"keke",
12             sayHello2:function () {
13                 return "namePrototype:" + this.name + "----agePrototype:" + this.age;
14             }
15         };
16            
17         var people1 = new PeopleMethod();
18         document.write(people1.sayHello());
19         document.writeln(people1.sayHello2());
View Code

 

(3)new Object()方式

技术分享
1    //3.obj 
2         var objPeople = new Object();
3         objPeople.name = "testObj";
4         objPeople.sayHello = function () {
5             return "name:"+this.name
6         }
7         document.write(objPeople.sayHello());
View Code

 

二 、函数

1.函数也为对象。函数内部可嵌套函数,嵌套的函数可以访问父级函数变量并将其返回,这就是我理解的闭包。

技术分享
 1  console.log (add1(1, 2));
 2         //1.函数声明
 3         function add1(a, b) {
 4             return a + b;
 5         }
 6 
 7         //2.函数表达式:匿名函数也属于函数表达式。
 8        // var c = add2(1, 2);
 9         //报错 Uncaught TypeError: Property ‘add2‘ of object [object Object] is not a function 
10         //不会像函数声明一样提前
11         var add2 = function (a,b) {
12             return a + b;
13         }
14         console.log(add2(1, 2));
15 
16        (function(a,b) {
17           console.log(a+b);
18        })(1, 2);
19 
20         //闭包
21        function addBiBao(a,b) {
22            b = 10;
23            return function() {
24                 return a + b;//访问父级变量b
25            }
26        }
27        var result = addBiBao(1, 2);
28        console.log(result());
29 
30         //3.函数构造器
31        var fAdd=new Function("a","b","alert(a+b)");
32        fAdd(1,2);
View Code

 

 

今天就到这里吧,写的很仓促、很基本,以后有时间希望在深入研究...。

 

   

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。