• js对象,原型,call,apply浅析


        //对象直接量,创建对象最简单的方式是在js里使用对象直接量
        var book = {
            "main title": "js", //属性里有空格,要用引号
            "s-t": "the microsoft", //有连字符也要用引号
            "for": "all start", //keyword也要用引号
            x: 2,
            author: { fistname: "jiangfan" }
        };
        alert(book.x);
     //new运算符创建并初始化一个新对象,关键字new后跟随一个函数调用。这里的函数成为构造函数(constructor),
        //构造函数用以初始化一个新创建的对象。
        var o = new Object(); //创建一个空对象,和{}一样
        var a = new Array(); //创建一个空数组,和[]一样
        var d = new Date(); //创建一个表示当前时间的Date对象
        var r = new RegExp("js"); //创建一个可以进行模式匹配的EegExp对象
        //原型介绍:每一个js对象(null除外)都和另一个对象关联。“另一个”对象就是原型,每一个对象都从原型继承属性
        //所以通过对象直接量创建的对象都具有同一个原型对象,可以通过Object.prototype获得对原型对象的引用。
        //通过new和构造函数调用创建的对象的原型就是构造函数的prototype属性的值。所以,同使用{}创建对象一样,通过new Object()
        //创建的对象也继承Object.prototype。new Array()创建的对象的原型是Array.prototype,new Date()创建的对象原型是Date.prototype.
        //本例完成:通过原型继承创建一个新对象
        function inherit(p) {
            if (p == null)
                throw TypeError();
            if (Object.create)
                return Object.create(p);
            var t = typeof p;
            if (t !== "object" && t !== "function")
                throw TypeError();
            function f() { };
            f.prototype = p;
            return new f();
            }
            var obj = {
                fa: "jf",
                ofun: function (a1, a2) {
                    alert(a1 + a2);
                },
                applys: function (arg) {
                    alert(arg[0] + arg[1]);
                }
            }, tempobj;
            tempobj = {};
            obj.ofun.call(tempobj, "hello", "world");
            obj.applys.call(tempobj, ["hello", "world"]);
            //call()和apply()例子如下:
            //想通过o的方法来调用函数f(),可以选择call(),apply()
            f.call(o);
            //f.apply(o);
            //以上两个代码解释如下:
            //假设对象o中预先不存在名为m的属性
            o.m = f; //将f存储为o的临时方法
            o.m();
            delete o.m //将临时方法删除

     js对象有三个属性,1:原型属性(prototype),2,类属性(调用toString()返回如下格式字符串:[object,class].

    //对象的类属性(class attribute)是一个字符串,用以表示对象的类型信息。
    //classof可以传递任意类型的参数
    function classof(o)
    {
      if(o===null)
      return "Null";
      if(o===undefined)
      return "Undefined";
      return Object.prototype.toString.call(o).slice(8,-1)      
    }
  • 相关阅读:
    SharePoint 2010 ——自定义上传页面与多文件上传解决方案
    SPJS Upload for SharePoint: Custom upload page for uploading documents to various document libraries in a site collection
    刚刚结束了公司EP流程,开始KMS项目开发了
    小孩出生6个月了,记录一下
    PeopleSoft FSCM Production Support 案例分析之一重大紧急事故发生时的应对策略
    PeopleSoft FSCM Production Support 案例分析
    SQL Server数据库常用的T-SQL命令
    详细讲解删除SQL Server日志的具体方法
    year()+month() 不错的Idear
    input只能输入数字
  • 原文地址:https://www.cnblogs.com/jiangxiaofan/p/3802563.html
Copyright © 2020-2023  润新知