闭包->类的实例数组排序

<script>
function Person(name,age)
{
if(this instanceof Person)//如果是 new
{
this.name=name;
this.age=age;
}
else return new Person(name,age); //如果是当函数调用,则直接new自己

}
Person.prototype.toString=function()
{
return "name:"+this.name+"\tage:"+this.age;
}
var list=[];
list[0]=new Person("张三",20);

list[1]=new Person("李四",30);

list[2]=new Person("王五",25);

list[3]= Person("刘六",40);
Array.prototype.toString=function()
{
var str="";
for(var i=0;i<this.length;i++)
{
str+=this[i].toString()+",";
}
return str;
}
function Sort(property,sortByAsc)
{

return function (object1,object2)
{
var v1=object1[property];
var v2=object2[property];
if(sortByAsc)
{
if(v1>v2)return 1;//备注:汉字不建议直接这样比较大小,结果也不准确
else if(v1<v2)return -1;
return 0;
}
else
{
if(v1>v2)return -1;
else if(v1<v2)return 1;
return 0;
}
}
}
console.log("年龄升序排序前"+list.toString());
list.sort(Sort("age",true));
console.log("年龄升序排序后"+list.toString());
</script>

结果为:

年龄升序排序前name:张三 age:20,name:李四 age:30,name:王五 age:25,name:刘六 age:40,

年龄升序排序后name:张三 age:20,name:王五 age:25,name:李四 age:30,name:刘六 age:40,

时间: 2024-10-26 10:15:28

闭包->类的实例数组排序的相关文章

JavaScript 闭包环境很奇特 - 相当于类与实例的关系?!

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 又一个疑问贴! 不过我相信,问题并不是难在如何解决,最终就是个能解决与不能解决,这很容易! 但当你无法决断是否能否解决,与如何解决的时侯,这才是最

使用MethodType函数将方法绑定到类或实例上

在开始正文之前,需要了解下Python的绑定方法(bound method)和非绑定方法. 简单做个测试: 定义一个类,类中由实例方法.静态方法和类方法. class ClassA: def instance_method(self): print('instance_method', self) @classmethod def cls_method(cls): print('cls_method', cls) @staticmethod def static_method(): print(

python “类变量”和“类的实例变量” 区别

1 class Count(): 2 count=0 3 def __init__(self,count): 4 self.count=count 5 self.__class__.count+=1 运行结果>>> >>>ct1=Count(3) >>>print ct1.count,Count.count 3 1 >>>ct2=Count(-1) >>>print ct2.count,Count.count -1

PHP Closure(闭包)类详解

Closure 面向对象变成语言代码的复用主要采用继承来实现,而函数的复用,就是通过闭包来实现.这就是闭包的设计初衷. 注:PHP里面闭包函数是为了复用函数而设计的语言特性,如果在闭包函数里面访问指定域的变量,使用use关键字来实现. PHP具有面向函数的编程特性,但是也是面向对象编程语言,PHP 会自动把闭包函数转换成内置类 Closure 的对象实例,依赖Closure 的对象实例又给闭包函数添加了更多的能力. 闭包不能被实例(私有构造函数),也不能被继承(finally 类).可以通过反射

Python类中实例属性的通用显示工具

0.说明 以下的思想方法非常有用,可以帮助你在Python开发提高开发和维护效率,所以可能的话,请仔细琢磨一下其中的代码. 之前在用Python编写一个类时,为了显示的友好性,总是需要在每个类中重载__str__或者__repr__方法,现在有了更好的方法,不需要在每个类中都这么做了,下面给出的方法非常实用. 下面使用的例子使用的Python版本都是Python3.5,但实际上在Python2.7中进行也没有任何影响. 1.正常情况下类实例的不友好显示 在Python中编写一个类时,由于没有重载

C# 利用反射根据类名创建类的实例对象

“反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): Assembly assembly = Assembly.LoadFile("程序集路径,不能是相对路径"); // 加载程序集(EXE 或 DLL) object obj = assembly.CreateInstance("类的完全限定名(即包括命名空间)");

Python - 04182016 - 类与实例间属性的理解

Python是个很灵活的语言,光看它的类和实例间属性的访问机制就可以看出这一点,不过这一点还真的不好理解,做了些测试之后我的理解是这样的: 实例在访问类属性时,先检索自己的names, 如果有的话就直接取出,没有的话就去来的names里面找,找不到就是error啦 class Pclass(object): """docstring for Pclass""" num = 10 def __init__(self): super(Pclass,

静态方法中访问类的实例成员

public class StaticShiLi { static int i=1; int j=2; static void m(){ System.out.println(j);报错 } public static void main(String[] args) { // TODO Auto-generated method stub } } 程序报错,显示无法访问. 疑问:那么怎样在静态方法中访问类的实例成员呢?

ja获取Unsafe类的实例和取消eclipse编译的错误和警告

JRE的rt.jar中提供了一个类sun.misc.Unsafe,虽然这个类因为其不其安全性,不建议使用,而且被加了诸多限制:但 是在很多场合下我们确实需要这个类提供的强大功能.JDK类库下的NIO和concurrent包下的很多类都使用到了Unsafe 类,如AtomicInteger和AbstractQueuedSynchronizer等. JDK源码中对这个类进行了严格限制,我们不能通过常规new的方式去获取该类的实例,也不能通过Unsafe.getUnsafe ()来获取实例.但是我们可