js对象及函数(四)

一、对象
1、函数对象的创建
方法一:使用new构造函数去创建构造函数对象
eg:

    var obj = new Object();
    //向对象里面添加属性或方法
    obj.name = ‘nzc‘;
    obj.age = 21;
    obj.sayName =  function(){}

方法二:使用对象字面量来声明对象

    var obj = {
        name:"nzc",
        age:21,
        gender:‘男‘,
        sayName: function(){}
    };

2、对象中属性和方法的调用:
a.使用.来调用对象中的属性和方法
eg:

    console.log(obj.name); //输出为 nzc
    console.log(obj.id); //输出为 undefined  调用对象中不存在的属性会返回undefined。
    obj.sayName();  //调用obj对象的sayName()方法
    console.log(obj.sayName);  //输出为 [Function]

b.使用[‘属性名‘]来调用对象的属性
eg:

    console.log(obj[‘name‘]);  //输出为 nzc ,注意:[]内需要加字符串再加属性名才能得到相应对象属性的属性值,否则会报错

3、对象中的属性
a.对象中属性值可以为任意类型【可以为object、array等类型值】
b.对象中属性值的遍历方法:
for-in 循环遍历
eg:

    for(key in obj){
        console.log(key+‘:‘+obj[key]);    //单词执行输出格式为:name:nzc  ,然后循环则会遍历对象
    }    

obj为需要遍历的对象,key为依次遍历对象的属性名【string类型】,obj[key]获取相应对象属性属性值
c.对象中属性的删除

     delete obj.name;    //删除obj对象中的name属性

4、js对象与JSON字符串间的相互转化
a.js对象转化为JSON字符串

    JSON.stringify(obj);  //将obj对象转化为JSON字符串

b.JSON字符串转化为js对象

    JSON.parse(str);  //将JSON str字符串转化为一个对象

二、函数
1.函数的声明:
方法一:

    function test(){
        console.log(‘test‘);
        return 1;  //函数返回值,看需要情况是否写该语句
    }

方法二:  【function(){}  匿名函数(立即执行函数IIFE)】

    var test = function(){
        console.log(‘test‘);
    }

函数体中return语句后面的函数将不会执行【return;  为函数结束语句】

2.函数的调用(使用)
a.基本函数的调用

    test();  //函数名()
    var result = test();  //将函数test()返回值赋值给result

b.匿名函数的调用

    (function(){})();    //(匿名函数体)()

三、变量与函数的声明提前
1、声明提前
a.变量的声明提前
在声明变量的前面使用该变量返回undefined
eg:

    console.log(a);  //undefined  而不是提示 a is not defined.
    var a = ‘hello!!!‘

b.函数声明提前
函数调用可以写在函数声明前面【函数声明提前】
eg:

    test();
    function test(){
        console.log(‘我是test()函数方法‘);
    }    

c.变量声明提前会优先于函数声明提前(即:声明提前函数在变量后面)【特别注意变量名和函数名相同时】
eg:

    console.log(test);  //[Function test]  说明是变量提前优于函数提前,变量被函数所覆盖
    function test(){}
    var test = 123;
    console.log(test);  //123

过程解析:
    var test;
    function test(){}
    console.log(test);
    test = 123;
    console.log(test);  //123

注意:当变量名和函数名相同时且变量名初始化了【变量赋予了值】,
与该变量名相同的函数名方法将会失效【其实是该函数无法被调用了】
如上面例子所示:使用test();调用函数其无法识别【它会认为是123(),会提示test不是一个变量】;

函数表达式形式不符合上面这些说法:
函数表达式形式:
    var test = function(){}
使用函数表达式本质上是变量之间的比较和变量提前声明再按照顺序执行初始化操作,再进行赋值覆盖。

2、函数的内部属性【只有在函数内部才能访问的属性】
a.arguments属性:
arguments是类数组对象,包含着传入函数中参数;
arguments对象还有一个callee的属性,用来指向拥有这个arguments对象的函数
eg:

     //arguments存放的是实参列表,类数组对象,length属性代表存放的实参个数,callee属性代表函数
    //对1,2,34,12,155,22,4进行累加
    function add(a,b){
            console.log(arguments); //类数组对象:{ ‘0‘: 1, ‘1‘: 2, ‘2‘: 34, ‘3‘: 12, ‘4‘: 155, ‘5‘: 22, ‘6‘: 4 }
            var total = 0;
            for(var i=0;i<arguments.length;i++){
                    //console.log(arguments[i]);
                    total += arguments[i];
            }
            return total;
    }
    var result = add(1,2,34,12,155,22,4);
    console.log(result);  //输出为:230

    //递归阶乘(arguments.callee的使用)
    function mul(num){
            //console.log(arguments.callee); //函数在自身函数内部调用自身使用arguments.callee代替函数名
            if(num>1){
                    return num*arguments.callee(num-1);
            }else{
                    return 1;
            }
    }

    var result = mul(5);
    console.log(result); //计算出5的阶乘结果:120

b.this属性:
指向的是函数赖以执行的环境对象【指向当前函数的作用域】
eg:

    //this指向当前函数的作用域
    function test(){
     console.log(this);  //global全局对象,在node.js环境中;  如果测试环境是浏览器,指向的是window对象
    }
    test();

    var obj = {
        name:‘nzc‘;
        age:21;
        sayName:function(){
        console.log(this.name);  //this指向调用该方法的对象
        }
    };
    obj.sayName();  //nzc
    

原文地址:https://www.cnblogs.com/nzcblogs/p/11172101.html

时间: 2024-11-05 11:34:40

js对象及函数(四)的相关文章

js 对象与函数的区别

1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 7 <script type="text/javascript"> 8 //第一种定义方式 9 function fn1(){ 10 alert("fn1"); /

JS对象、函数、数组

// 对象: Object // 构造函数 Object : var obj = new Object(); obj.id = 9; obj.name = "lucy"; obj.age = 16; obj.gender = "male"; console.log(obj); //  输出结果: { id: 9, name: 'lucy', age: 16, gender: 'male' } // 对象字面量 var obj = { id:9, name:"

js中的函数,Date对象,Math对象和数组对象

函数就是完成某个功能的一组语句,js中的函数由关键字 function + 函数名 + 一组参数定义;函数在定义后可以被重复调用,通常将常用的功能写成一个函数,利用函数可以使代码的组织结构更多清晰. 其语法结构为 function funName (arg0, arg1, … argN){        //statements    } function say_hello (name, msg){ alert(“hello”+ name + “:”+ msg); } say_hello(“d

JS中的函数,Array对象,for-in语句,with语句,自定义对象,Prototype

一)函数 A)JS中的函数的定义格式: function add(a,b) { var sum = a+b; document.write("两个数的和是:" + sum); //return sum; } 上面只是一个例子 ,那么当我们再定义一个同名的函数会怎么样呢? function add(a,b,c) { var sum = a+b+c; document.write("三个数的和是:" + sum); } 然后调用函数: add(50,30,10);   

JQuery之JQuery的版本 JQuery入门 属性获取 JQuery就绪函数 JS文档就绪函数和JQuery文档就绪函数的区别 JS对象和JQuery对象的区别 关于$的使用 多个JS库的冲突解决方案

JQuery的版本 JQuery入门 属性获取 JQuery就绪函数 JS文档就绪函数和JQuery文档就绪函数的区别 JS对象和JQuery对象的区别 关于$的使用 多个JS库的冲突解决方案 JQuery的版本 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jQuery的版本</title> <

jquery 源码学习(四)构造jQuery对象-工具函数

jQuery源码分析-03构造jQuery对象-工具函数,需要的朋友可以参考下. 作者:nuysoft/高云 QQ:47214707 EMail:[email protected] 声明:本文为原创文章,如需转载,请注明来源并保留原文链接. 读读写写,不对的地方请告诉我,多多交流共同进步,本章的的PDF等本章写完了发布. jQuery源码分析系列的目录请查看 http://nuysoft.iteye.com/blog/1177451,想系统的好好写写,目前还是从我感兴趣的部分开始,如果大家有对哪

JavaScript (JS) 面向对象编程 浅析 (含对象、函数原型链解析)

1. 构造函数原型对象:prototype ① 构造函数独立创建对象,消耗性能 function Person(name) { this.name = name; this.sayHello = function () { console.log("Hello,my name is " + this.name) } } var P1 = new Person("Tom"); var P2 = new Person("Jim"); P1.sayHe

初探swift语言的学习笔记四(类对象,函数)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/29606137 转载请注明出处 假设认为文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! swift扩展了非常多功能和属性,有些也比較奇P.仅仅有慢慢学习,通过经验慢慢总结了. 以下将初步学习一下类的写法. 码工,最大爱好就是看码,而不是文字,太枯燥. // // computer.swift // swiftDemo // // C

SQL Server 2008空间数据应用系列四:基础空间对象与函数应用

原文:SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验. 3.熟悉或了解Microsoft SQL Server 2008中的空间数据类型. 4.具备相应(比如OGC)的GIS专业理论知识. 5.其他相关知识. SQL Server 2