zoukankan      html  css  js  c++  java
  • 面向对象---函数

    闭包和继承
    自运行函数也叫自调用函数,即函数声明之后,即刻执行。
    匿名函数,就是没有定义函数名的函数。
    场景:仅执行一次的函数。
    特点:自运行的匿名函数可以有效的保证在页面上写入JavaScript,而不会造成全局变量的污染。
    写法:
    可直接写

    ~function(){console.log("Hello world");}();
    +function(){console.log("Hello world");}();
    -function(){console.log("Hello world");}();
    !function(){console.log("Hello world");}();
    delete function(){console.log("Hello world");}();
    void function(){console.log("Hello world");}();

    前面需要数据

    console.log(1*function(){return 7};);
    console.log(16/function(){return 2};);
    console.log(9%function(){return 10};);

    常用的写法:
    (function(){console.log("hello world");})();
    (function(){console.log("hello world");}())
    闭包:
    闭包,是指在函数外部访问函数作用域中变量的函数。
    闭包,可以访问函数内部的局部变量,并让其长期驻留内存。

    function a(){
    var num = 1;
    return function(){
    return ++num ;
    }
    }
    var fun = a();
    alert(fun());//2
    alert(fun());//3

    、、、、、、、、、、、、、、、
    原型

    JavaScript中每个对象有prototype(原型)属性。
    JavaScript中对象的prototype属性的解释是:返回对象类型原型的引用。
    比如我们有一个函数叫做Foo,这个Foo是由其原型构造出来的。

    function Foo()------>prototype----->Foo.prototype

    Foo.prototype----->constructor---->function Foo()

    Foo函数是由Foo函数的原型对象构造出来的。
    prototype 是一个指针,指向一个对象。这个对象的用途是,包含所有实例共享的属性和方法。

    所有通过同一个构造函数创建的实例对象,都会共享同一个prototype。
    原型诞生的意义就是可以实现代码复用。
    就是把需要共享的属性方法放到一个对象里,这个对象就是原型(对象)。

    function Person(_name){
    this.name = _name;
    this.age = 19;//使用p1.age访问时age属性从构造函数内容实例查询起。如果没有就向原型prototype属性上查询。
    }
    
    alert( Person.prototype ); // object
    Person.prototype.age = 18; // 给原型对象增加属性
    var p1 = new Person("张三");
    alert(p1.name+", "+p1.age); //张三, 18
    var p2 = new Person("李四");
    alert(p2.name+", "+p2.age); //李四, 18

    //p2_proto_age//查询原型下的age属性。
    instanceof运算符
    用来测试一个对象在其原型链中是否存在一个构造函数的prototype属性。
    两者的区别的主要是:
    A.isPrototypeOf(B) 判断的是A对象是否存在于B对象的原型链之中。
    A instanceof 原型链B判断的是B.prototype是否存在与A的原型链之中。
    hasOwnProperty

    在实例中是否包含该属性,不在原型中查找该属性。

    function Person(_name){
    this.name = _name;
    }
    var p1 = new Person("a");    
    alert( p1.hasOwnProperty('name') ); // true
  • 相关阅读:
    JS函数浅析(一)
    H5_canvas与svg
    h5+js视频播放器控件
    【BZOJ3622】已经没有什么好害怕的了
    【9.29 模拟】T3 小清新最优化(easy)
    9.27模拟
    9.26 模拟
    4062 -- 【清华集训2012】串珠子
    【SNOI2017】炸弹
    P3216 [HNOI2011]数学作业
  • 原文地址:https://www.cnblogs.com/l8l8/p/8966891.html
Copyright © 2011-2022 走看看