2013年7月1日

摘要: 上次说到 当我们定义一个函数的时候。可以通过对象.prototype来为对象添加属性和方法如:function Person(){};Person.prototype.name="Amos";Person.prototype.age=23;Person.prototype.say=function(){alert(this.name+"\t"_this.age);}但是如果需要添加的属性或者方法很多的时候,那么就会给效率带来很多问题。所以就引入了新的编写方式,通过json来编写function Person(){};Person.prototype = 阅读全文
posted @ 2013-07-01 18:31 菜鸟半只 阅读(174) 评论(0) 推荐(0)
摘要: //以下通过原型创建对象,使用基于原型的创建可以把属性和方法//设置为对象专有的。不能在通过window来调用了。function Person(){Person.prototype.name="Amos";}Person.prototype.age=23;Person.prototype.say=function(){alert(this.name+"\t"+this.age);}var p1 = new Person();p1.say();//原型是js中非常一个特殊的对象,当一个函数创建之会随之产生一个原型对象。//当通过这个函数的构造函数创建了一 阅读全文
posted @ 2013-07-01 17:18 菜鸟半只 阅读(411) 评论(0) 推荐(0)
摘要: //工厂方式创建function createPerson(name,age){var o = new Object();o.name=name;o.age=age;o.say = function(){alert(this.name+"\t"+this.age);}}//使用工厂的方式,虽然解决了类的问题。但是依然存在问题//我们无法获取到 p1或者p2的类型。通过typeof仅仅得到的是OBject//但是要通过instanceof()不知道是哪个类型//所以我们就要使用构造函数方式创建var p1 = new createPerson("Amos" 阅读全文
posted @ 2013-07-01 15:52 菜鸟半只 阅读(274) 评论(0) 推荐(0)
摘要: //js中不存在类,所以可以直接通过Object来创建//但是这样创建最大的问题就是没有类的约束,无法实现对象的重复利用。//而且在网络中一般不会直接以一种对象来传递对象//所以就引出 json (javascript simple object notation)//json就是js对象var person = new Object();person.name="Amos";person.age=12;person.say = function(){alert(this.name+"\t"+this.age);}// json格式对象var perso 阅读全文
posted @ 2013-07-01 14:45 菜鸟半只 阅读(171) 评论(0) 推荐(0)
摘要: function fn(num1,num2){return num1+num2};function callFn(num1,num2){//使用sum这个函数来完成一次调用。调用的参数就是callFn这个函数的参数//apply第二个参数表示一组参数数组//我们也可以直接写为return sum.apply(this,[num1,num2]);return sum.apply(arguments);}function callFbByCall(num1,num2){// 和apply的区别,唯一就在于这里的参数是分开一个个传过去。return sum.call(this,num,num2);} 阅读全文
posted @ 2013-07-01 14:27 菜鸟半只 阅读(294) 评论(0) 推荐(0)
摘要: 当需要创建一个类的时候,设置类的属性和方法需要通过this关键字来应用,但是特别注意:this关键字在调用的时候会根据不同的调用对象变得不同。var color = "red";function showColor(){alert(this.color);};function Circle(color){this.color =color;this.showColor = showColor;}var c = new Circle("yellow");c.showColor(); //这个时候是通过c来调用的。所以是yellow;showClor(); 阅读全文
posted @ 2013-07-01 14:08 菜鸟半只 阅读(125) 评论(0) 推荐(0)
摘要: 在js函数中有一个属性叫做arguments,通过这个可以获取相应的参数值。这个属性是一个数组,其实就是传进来的参数function say(num){alert(arguments.length) //3alert(num); //1}say(1,2,3); 阅读全文
posted @ 2013-07-01 14:02 菜鸟半只 阅读(118) 评论(0) 推荐(0)
摘要: var as = [1,2,11,3434,3,4545,33,55,0];as.sort(); //这个排序是按照字典排序//自定义按照数字排序function sortByNum(a,b){return parseInt(a) - parseInt(b);}as.sort(sortByNum);//按照对象来排序//定义一个person对象function Person(name.age){this.name=name;this.age=age;}var p1 = new Person("zhang1",11);var p2 = new Person("zha 阅读全文
posted @ 2013-07-01 13:27 菜鸟半只 阅读(283) 评论(0) 推荐(0)
摘要: 1:函数的传递 //因为函数是对象,所有可以直接把函数通过参数传递进来function callFun(fun,arg){return say(arg);}function say(arg){alert("hello "+arg);}callFun(say,"Amos"); // hello amos2:返回函数function fun1(num1){var fn2 = function(num2){return num1+num2;}return fn2;}var fn = fun1(20); // 当一个方法执行完毕的时候,它的参数的作用域必然随之消 阅读全文
posted @ 2013-07-01 12:57 菜鸟半只 阅读(168) 评论(0) 推荐(0)
摘要: function sum(num1,num2){return num1+num2};function sum(num1){return num1+100};alert(sum(10)) // 110alert(sum(10,20)) //110;想必这里看了大家一定会纳闷 。下面解释一下:首先我们以另外一种形式来定义下上面的两个函数var sum = function(num1,num2){return num1+num2}var sum = function(num){return num+100};第一次定义function的时候,sum变量就会马上指向它的空间。当我们在一次定义一个fun 阅读全文
posted @ 2013-07-01 12:34 菜鸟半只 阅读(156) 评论(0) 推荐(0)

导航