• <<JavaScript编程全解>>阅读笔记之变量与对象


    1.对变量重复声明,不会覆盖原有的只

      如:var a=1;

           var a;

           alert(a)//1

    2.Js函数返回多个值

    function(x,y)

    {

      reture [y,x];

    }

    3.检查是否该变量为全局变量

    var x=2;

    alert(   'x' in this);

    4.访问未声明的变量,会触发ReferenceError  错误

    5.检查属性是否存在

       访问不存在的属性不会触发ReferenceError  错误

      如 this.x //undefined

    但如果在不存在属性时,再访问属性,就会产生typeErroe

    obj.x && obj.x.y 避免typeErroe

    6.返回多个值的函数

    function fn(x, y,z)
    {
    return {a:x,b:y,c:z} ;
    }
    var obj = fn(1, 2, 3);
    alert(obj.b);//2

    7.function MyClass(x,y)

    {

    this.x=x;

    this.y=y;

    }

    var obj=new MyClass();

    构造函数MyClass最后会隐式返回this,

    javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。 //补充资料

    new的作用就是"构造函数",这种方法与直接声明的函数的区别就是:用new操作符构造出来的函数是一个对象。//补充资料

    8.点运算符与中括号运算符的使用

    中括号运算符可以使用"-"读取属性

    如 obj[f-b]

    而obj.f-b 不行

    中括号运算符可以使用变量读取属性

    如var x=‘1’;

       obj[x];

    9.var map={};

      alert(  map.hasOwnProperty ('tostring'));//判断map中是否有直接属性tostring

    10. delete 只能删除对象中直接属性

        如 delete map['tostring'] //tostring是map继承的属性

    11.js限制对象增删改

     preventExtensions:不能新增

    seal:不能新增,删除

    freeze:不能新增,删除,修改属性值

    var obj = { x: 2, y: 3 };

    Object.preventExtensions(obj);
    obj.z = 33;
    alert(obj.z);//undefined

    Object.seal(obj);
    delete obj.x;
    alert(obj.x); //2

    Object.freeze(obj);
    obj.x=3
    alert(obj.x); //2

    12.关于this引用

    A.构造函数调用,this指所生成的对象

    B.方法调用,this指向接收方对象,方法调用的目标对象叫接收方对象

    C.apply或call调用时,this为 apply或call指定的对象

    13.关于apply与call

    指定this调用的对象

    不同点在于两者传递的参数

    function f(a, b)
    {
    alert('a:' + a + " ,b:" + b + ",this.x:" + this.x);
    }
    f.apply({ x: 5 }, [1, 2]);
    f.call({x:6},1,2);

    14.得到对象的构造函数

    var d = new Date();
    alert(d.constructor); //function Date(){  [native code] }

  • 相关阅读:
    不要控制!
    【转】iframe页面跳转时,导致父页面滚动!该怎么解决?
    【转】XML 特殊字符处理
    【转】使用Log4Net进行日志记录
    【转】JS获取浏览器可视区域的尺寸
    【转】Winform程序未捕获异常解决方法 EventType clr20r3 P1
    【转】VMware Tools installation cannot be started manually while Easy Install is in progress.
    如何解决安装VMware后郑广电宽带客户端不能登录的问题?
    MVC中的M是ViewModel不是EntityModel!
    纸上原型--纸上草稿设计--简单高效的沟通方式!
  • 原文地址:https://www.cnblogs.com/zhangxiong/p/4911943.html
Copyright © 2020-2023  润新知