美文网首页
JavaScript函数窥探

JavaScript函数窥探

作者: 小如99 | 来源:发表于2018-03-01 16:28 被阅读6次

JS的语法跟swift很像,以下代码有几个知识点:

  1. 函数的定义
  2. 匿名函数的使用,作为参数/返回值,和OC的block,swift的闭包差不多。
  3. 变量的作用域:JS变量的作用域根据函数来;OC变量的作用域根据{}来
  4. 创建对象的两种方式。
 <script>
    //1.1 加法运算
    function sum(num1,num2) {
        return num1 + num2;
    }
    // 如何调用
    var result = sum(12,20);
    console.log(result)

    //1.2 万能的加法函数
    function sum2(numbers) {
        var result = 0;
        for(var i in numbers){
            result += numbers[i];
        }
        return result;
    }
    var result1 = sum2([3213,23,21,312,321,312,31]);
    console.log(result1);

    //1.3 匿名函数 -- 相当于OC中的Block -- 相当于Swift中的闭包
   var res = function () {
        console.log('我是匿名函数');
    }
    //调用匿名函数
    function funct(block) {
        block();
    }
    funct(res);

    //JS中的闭包!!!
    function func1(num1) {
        return function (num2) {
            return num1 + num2;
        }
    }

    var temp = func1(4);
    var temp2 = temp(5);
    console.log(temp2);


    //作用域
    //代码块的作用域
    var t = 'hank'; //全局变量
    if(true){
        var t = 'Dream'; //JS中哥么还是一个全局变量!!
    }
    console.log(t);
    //函数的作用域
    function test() {
        var t = 'Jack';//里面就是局部变量!!!
    }
    test();
    console.log(t);
    

    //这是一种写法
    var obj = new Object();//创建一个对象obj
    obj.age = 5;//给对象定义属性
    obj.click = function () { //创建对象函数
        alert("我被单击了");
    }

    //另一种写法
    var obj1 = {
        age:5,
        click:function () {
            alert("我也被点击了");
        }
    }
</script>

创建对象的这两种方式都有个弊端,每次创建同类型的对象都要写一样的代码,属性越多重复代码就越多,那怎么进行抽象封装?就要想到类,构造函数,像iOS中的构造函数是alloc、init,那么JS的构造函数要怎么创建呢?两步如下:

  1. 函数返回对象
  2. new 对象
 <script>
    //普通函数
    //new
    var Dog = function (name,age,height) {
        this.name = name;
        this.age = age;
        this.height = height;
        this.eat = function (someThing) {
            console.log(this.name + '吃'+someThing)
        };
        this.run = function (someWhere) {
            console.log(this.name + '跑'+someWhere)
        }
    }

   //创建对象
    var dog1 = new Dog('小黄',18,1.1)

    var dog2 = new Dog('旺财',17);
    console.log(dog1,dog2);
    dog1.eat('板烧鸡腿堡')
    dog2.eat('叉烧包')

</script>

JS创建对象

<script>
    //1.创建对象
    var dog={
        name:'xiaohuang',
        age:18,
        height:1.2,
        dogFriends:['laifu','lisi'],
        eat:function (someThing) {
            console.log(this.name+'吃!'+someThing);
        },
        //this就是此函数属于哪个对象,那么this就代表这个对象!
        run:function (where) {
            console.log(this.age+'跑'+where);
        }

    };//object
    console.log(dog.name,dog.age);
    dog.eat('板烧鸡腿堡');
    dog.run('家里');

</script>

相关文章

  • JavaScript函数窥探

    JS的语法跟swift很像,以下代码有几个知识点: 函数的定义 匿名函数的使用,作为参数/返回值,和OC的bloc...

  • Javascript 函数缺省值

    Javascript 函数 Javascript 函数缺省值写法

  • JavaScript函数式编程

    读完《JavaScript函数式编程》《JavaScript函数式编程指南》这两本书,对JavaScript函数式...

  • JavaScript函数式编程

    读完《JavaScript函数式编程》《JavaScript函数式编程指南》这两本书,对JavaScript函数式...

  • JavaScript函数

    layout: posttitle: JavaScript函数tags: [JavaScript, 函数]auth...

  • JavaScript encodeURI() 函数

    JavaScript encodeURI() 函数 JavaScript 全局函数](https://www.ru...

  • JavaScript中的函数

    @(javascript)[js函数] [toc] JavaScript中的函数 函数的分类与定义函数的方式 Ja...

  • JavaScript语言基础(二)

    JavaScript内置函数,这些函数都是由JavaScript语言自身提供,是JavaScript全局方法。pa...

  • JavaScript - 函数 - 1

    #JavaScript 函数定义 JavaScript 使用关键字 function 定义函数。函数可以通过声明定...

  • 2016-11-24

    JavaScript escape() 函数 JavaScript 全局对象 定义和用法:escape() 函数可...

网友评论

      本文标题:JavaScript函数窥探

      本文链接:https://www.haomeiwen.com/subject/svtnxftx.html