一切皆对象之两个方法概括js,无函数签名(无多态),原型,闭包,封装,引用类型,继承……

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript">

    var num = [88, 1151, 1];
    (function() {
        /**
         * 对于n1,n2,n3;如果其中任意两个分别乘以[1, 100]范围内的任意两个整数x,y的和加2或者减2等于
         * 另外第三个数,找出x和y.
         * @type {Number}
         */
        function MioFun () {
            this.a = arguments[0][0];
            this.b = arguments[0][1];
            this.c = arguments[0][2];
        }
        MioFun.prototype = {
            constructor : MioFun,
            findMax: function() {
                var temp = 0;
                if(this.a < this.b) {
                    temp = this.a;
                    this.a = this.b;
                    this.b = temp;
                }
                if(this.a < this.c) {
                    temp = this.a;
                    this.a = this.c;
                    this.c = temp;
                }
                return this;
            },
            calMain: function() {
                var i, j;
                if(this.a < this.b + this.c) return null;
                for(i = 1; i <= 100; i++) {
                    for(j = 1; j <= 100; j++) {
                        this.calFun(i, j);
                    }
                }
            },
            calFun: function(x, y) {
                if((this.a-2 == this.b*x + this.c*y)||(this.a+2 == this.b*x + this.c*y)) {
                    console.log(x, y, this.b + "*" + x + "+" + this.c + "*" + y + "=" + (this.a - 2) + "or" + (this.a + 2));
                    console.log("////////////////////////////////////////////////////////////////////////////");
                }
            }
        }
        var mio = new MioFun(arguments[0]);
        mio.findMax().calMain();
    })(num);

    var arg = [88, 1152, 102];
    (function() {
        /**
         * 对于n1,n2,n3;如果其中任意两个分别乘以[1, 100]范围内的任意两个整数x,y的和加2或者减2等于
         * 另外第三个数,找出x和y.
         * @type {Number}
         */
        function SuperFun () { //父类成员属性
            if(arguments[0]) {
                this.a = arguments[0][0];
                this.b = arguments[0][1];
            }
        }
        SuperFun.prototype.findMax = function() { //父类成员方法findMax
            var temp = 0;
            if(this.a < this.b) {
                temp = this.a;
                this.a = this.b;
                this.b = temp;
            }
            if(this.a < this.c) {
                temp = this.a;
                this.a = this.c;
                this.c = temp;
            }
            return this;
        };
        SuperFun.prototype.calFun = function(x, y) { //父类成员方法calFun
            if((this.a-2 == this.b*x + this.c*y)||(this.a+2 == this.b*x + this.c*y)) {
                console.log(x, y, this.b + "*" + x + "+" + this.c + "*" + y + "=" + (this.a - 2) + "or" + (this.a + 2));
                console.log("////////////////////////////////////////////////////////////////////////////");
            }
        };
        function SubFun () {
            SuperFun.call(this, arguments[0]); //继承父类SuperFun属性
            this.c = arguments[0][2]; //子类伪私有成员属性
        }
        SubFun.prototype = new SuperFun();  //继承父类SuperFun方法
        SubFun.prototype.constructor = SubFun;
        SubFun.prototype.calMain =  function() { //子类伪私有成员方法
            var i, j;
            if(this.a < this.b + this.c) return null;
            for(i = 1; i <= 100; i++) {
                for(j = 1; j <= 100; j++) {
                    this.calFun(i, j);
                }
            }
        };
        var mio = new SubFun(arguments[0]);
        mio.findMax().calMain();
    })(arg);
	</script>
</head>
<body>

</body>
</html>

时间: 2024-10-13 22:52:15

一切皆对象之两个方法概括js,无函数签名(无多态),原型,闭包,封装,引用类型,继承……的相关文章

php7实例化类有对象有两种方法

php7实例化类有对象有两种方法,下面给介绍具体两种方法 class Person{public $a="96net.com.cn";public function eat(){echo 'xxxx';} } 1,NEW 关键词实例化对象 $xm= new Person();或者$xm= new Person; 2, 类名字符串,把类名赋值给变量 $strs='Person'; $xm= new $strs(); 原文地址:https://blog.51cto.com/13959155

通过Intent传递对象的两种方法

1 Serializable 2 Parcelable 实现方法: a.定义两个javaBean(Book,Person),分别implements Serializable和Parcelable b.建立Activity,用来传递Object对象和接收Object对象,通过Serializeable和Pacelable方法传递对象,分别调用方法 bundle.putSerializable(String key,Serializable value) bundle.putParcelable(

Intent传递对象的两种方法

Android为intent提供了两种传递对象参数类型的方法 分别需要使实体类实现Serializable接口.Parcelable接口 首先我们要知道,传递对象,需要先将对象序列化 一.那么为什么要对象序列化 1.永久性保存对象,保存对象的字节序列到本地文件中: 2.用过序列化对象在网络中.进程间传递对象: 二.序列化对象什么时候实现Serializable接口,什么时候实现Parcelable接口接口 1.Parcelable不能使用将数据存储在磁盘上,因为Parcelable在外界有变化的

Android高手进阶教程(十七)之---Android中Intent传递对象的两种方法(Serializable,Parcelable)!

[转][原文] 大家好,好久不见,今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口,为了让大家更容易理解我还是照常写了一个简单的Demo,大家就一步一步跟我来吧! 第一步:新建一个andr

Android中Intent传递对象的两种方法(Serializable,Parcelable)

今天要给大家讲一下Android中 Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是 Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口,为了让大 家更容易理解我还是照常写了一个简单的Demo,大家就一步一步跟我来吧! 第一步:新建一个Android工程命名为Object

(六十四)Android中Intent传递对象的两种方法(Serializable,Parcelable)

转载自:http://blog.csdn.net/android_tutor/article/details/5740845 大家好,好久不见,今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable

Android高手之路之Android中Intent传递对象的两种方法Serializable,Parcelable

注:本文改编自Android_Tutor的文章,原文地址:http://blog.csdn.net/android_tutor/article/details/5740845 Android中的传递有两个方法,一个是Serializable,另一个是Parcelable. Serializable是J2SE本身就支持的.而Parcelable是Android所特有的. 二者的使用场景和区别: 1)在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parcelab

[转]Android中Intent传递对象的两种方法(Serializable,Parcelable)

http://blog.csdn.net/xyz_lmn/article/details/5908355 今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口,为了让大家更容易理解我还是照常写

转载:在ASP.net 3.5中 用JSON序列化对象(两种方法)

asp.net3.5中已经集成了序列化对象为json的方法. 1:System.Runtime.Serialization.Json;    2:System.Web.Script.Serialization两个命名空间下的不同方法进行序列化和反序列化. 第一种方法:System.Runtime.Serialization.Json public class JsonHelper    {        /// <summary>        /// 生成Json格式        ///