码迷,mamicode.com
首页 > 其他好文 > 详细

函数对象和闭包的预习

时间:2019-11-09 19:59:21      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:获取   document   rabl   操作   作用域   避免   ons   特性   直接   

创建对象;

1、对象直接量。

    var point = { x:0,y:0 };  //point就是一个对象,跟C#不同,它不需要一定有类才能创建对象。

  2、通过new创建对象

    var d = new Date();    //创建一个Date对象

  3、原型

    Object.prototype  //用于获取对象原型的引用。所有对象都直接或间接继承自Object.prototype,相当于C#中的System.Object();

    通过new Date()创建的对象同时继承自Date.prototype和Object.prototype。

  4、Object.create()

    Object.create()是一个静态函数,可以用它创建一个新对象。

 

  delete()   delete()方法只能够删除自有属性,不能够删除继承属性。delete()只是断开属性和宿主对象的联系,而不回去操作属性中的属性。

 var a= {
            author:"姜曲海",
            number:123
        }
        delete a.author;        //此行代码也可写成delete a["author"]
        document.write(a.author);  //a.author的值为undefined,因为已经被删除了


in:检测某对象是否含有某个属性
var o = {
            x:1
        }  
        document.write("x" in o);  //返回true  x是o的一个属性
        document.write("y" in o);  //返回false  y不是o的属性

hasOwnProperty() 检测对象中是否含有某属性
 var o = {
            x : 1
        }
        document.write(o.hasOwnProperty("x"));  //返回true  o中含有名为"x"的属性
        document.write(o.hasOwnProperty("y"));  //返回false  o中不含有名为"y"的属性

属性的特性

 writeable:是否可写。

    enumerable:是否可枚举。

    configurable:是否可配置。

 

闭包

 

function outer() {
     var  a = ‘变量1‘
     var  inner = function () {
            console.info(a)
     }
    return inner    // inner 就是一个闭包函数,因为他能够访问到outer函数的作用域
}


闭包有三个特性:  

  1. 函数嵌套函数。
  2. 函数内部可以引用外部的参数和变量。
  3. 参数和变量不会被垃圾回收机制回收。

闭包的好处:

  1. 希望一个变量长期存储在内存中。
  2. 避免全局变量的污染。
  3. 私有成员的存在

闭包的缺点:

  1. 常驻内存,增加内存使用量。无法被垃圾回收机制回收;
  2. 使用不当会很容易造成内存泄露。

函数对象和闭包的预习

标签:获取   document   rabl   操作   作用域   避免   ons   特性   直接   

原文地址:https://www.cnblogs.com/jiangquhan/p/11827074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!