博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript基础(四)关于对象及JSON
阅读量:5056 次
发布时间:2019-06-12

本文共 1759 字,大约阅读时间需要 5 分钟。

对象介绍

  • 概念:对象是具体到某一个事物,具有一定的特征和行为。
  • 面向对象:可以创建自定义类型,支持继承和多态。JAVA/C++/C#
  • 基于对象:无法创建自定义类型,不能很好的支持继承和多态。 JavaScript(没有接口,抽象类等概念) 
  • JavaScript 创建对象一般用 new Object()或使用{}; 也可以自己写一个构造函数来创建对象。
    •   js对象是无序属性的集合;可看作键值对类型,值可以是数据可以是函数。
    •   属性可用obj . prop 或者obj[‘prop’]调用访问
  • 目的:封装一些数据
//代码表示    var dog = new Object();    var cat= new Object();    var o = {};    dog.name='阿花';    cat['name'] = '阿白';    o.name = "张三";    //调用属性方式    console.log(dog.name);//阿花     console.log(dog['name']);// 阿花    console.log(cat.name);//阿白    console.log(cat['name']);//阿白    console.log(o.name);//张三

this问题

  • 谁调用,this就是谁,this始终是当前对象。
  • window是js的顶级对象。

对象字面量和JSON

//对象字面量    var o = {        name:"zs",        age:18,        have:{},        say:function(){            console.log("hello");        }    };    //json JavaScript Object Notation    //和对象字面量的区别,就是属性需要使用引号引起 一种规范    var o1 = {        'name':'ls',        'sex':18    }

forin(遍历数组或者对象)

var obj = {         name:"zs",         age:18,         have:{},         say:function(){             console.log("hello");         }     };     for (var key in obj) {         //输出属性名+属性值 name---zs,age---18...         //如果写成obj.key或obj['key'],则报undefined错误         console.log(key+'----'+obj[key]);     }

基本类型/简单类型/复杂类型当参数

//基本类型    //只有栈,传递过程是把变量复制一份,修改函数内部变量,对外部变量无影响    function  f1(x){        x = 100;    }    var x = 1;    f1(x);    console.log(x);// 1    //简单类型    //同是复制栈上的地址,但指向同一个堆内存对象,无论操作谁,对象改变    function f2(o){        o.name = "zs1";    }    var obj = {         name:"zs",         age:18    }    f2(obj);    console.log(obj.name);// zs1    //复杂类型    //复制栈地址,指向 堆的同一对象,修改对象,结果改变    function f3(arr){        arr[0] = 10;    }    var array = [1,2,3];    f3(array);    console.log(array);//10,2,3

 

转载于:https://www.cnblogs.com/yuan1994/p/11183974.html

你可能感兴趣的文章
Activity启动过程中获取组件宽高的五种方式
查看>>
java导出Excel表格简单的方法
查看>>
SQLite数据库简介
查看>>
利用堆实现堆排序&优先队列
查看>>
Mono源码学习笔记:Console类(四)
查看>>
Android学习路线(十二)Activity生命周期——启动一个Activity
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
windows下编译FreeSwitch
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>
c#自定义控件中的事件处理
查看>>
App.config自定义节点读取
查看>>
unity3d根据手机串号和二维码做正版验证
查看>>
二十六、Android WebView缓存
查看>>
django Models 常用的字段和参数
查看>>
linux -- 嵌入式linux下wifi无线网卡驱动
查看>>
SVN使用教程总结
查看>>
SQL中varchar和nvarchar有什么区别?
查看>>
OpenCV矩阵运算总结
查看>>