JS引用类型 --- Object

一、对象的基础知识

  • 概念:特指的某一个事物,有特征(属性)和行为(方法),可存储数据。
  • 通俗理解:对象是一组无序键值对的集合,可存储数据。
  • 对象的属性和方法:可以通过 . 的方式添加(这一点也证明了JS是一门动态类型的语言)
  • JS中大多数引用类型的值,都是Object类型的实例

二、对象创建的 3种方式

1. {} 字面量创建对象

<script>
    var obj2 = {};
    obj2.name = ‘zhangxin‘;

    console.log(obj2);
</script>

2. new 构造函数创建对象

  • 构造函数:第一个字母大写(约定);普通函数:第一个字母小写
<script>
    var obj1 = new Object();
    obj1.name = ‘zhangxin‘;

    console.log(obj1);
</script>
  • new 构造函数,new 做了4件事:

    • 创建一个新对象
    • this指向当前创建的新对象
    • 给新对象添加 属性、方法
    • 返回 创建后的新对象
<script>
    function Computer(name, age) {
        this.name = name;
        this.age = age;

        this.say = function () {
            return ‘我是‘ + this.name + ‘;今年‘ + this.age;
        }
    }

    var cp = new Computer(‘电脑‘, 20);
    console.log(cp.say());  // 我是电脑;今年20
</script>
  • new 构造函数 创建数组对象
<script>
    var arr = new Array();

    console.log(arr);  // []
</script>

3. Object.create({键值对}) 方法创建新对象; ES5方法,IE8及以下不兼容

<script>
    var o1 = {name: ‘zhangxin‘};
    var create = Object.create(o1);

    console.log(create.name);  // ‘zhangxin‘
</script>

三、对象的的属性 、方法( 赋值、取值 )

方式1: . 的方式添加 / 读取:属性 、方法

方式2: [] 的方式添加 / 读取:属性 、方法(重要)

  • 重要:可添加动态的属性名、动态的方法名
  • 使用 [] 添加属性、方法:若属性名是固定的,需加引号;否则被视为 动态的变量
<script>
    var obj = {};

    obj.age = 20;
    obj[‘name‘] = ‘zhangxin‘;

    console.log(obj.age);       // 20
    console.log(obj[‘name‘]);   // ‘zhangxin‘
</script>

四、对象循环遍历 for-in

<script>
    var obj = {age: 18, name: ‘ss‘};

    for (var key in obj) {
        consloe.log(key);
        console.log(obj[key]);
    }
</script>

五、对象深拷贝 Object.create( )

<script>
    var o1 = {name: ‘zhangxin‘};
    var o2 = Object.create(o1);

    console.log(o2 === o1);  // false
</script>

原文地址:https://www.cnblogs.com/zxvictory/p/8120538.html

时间: 2024-09-30 19:45:10

JS引用类型 --- Object的相关文章

JS引用类型 -- Object类型

Object是ECMAScript中使用最多的一个类型,虽然Object的实例不具备多少功能,但对于在应用程序中存储和传输数据而言,它们是非常理想的选择. 创建Object实例有两种方式: 1.new操作符后跟Object构造函数 var person = new Object(); person.name = "Nicholas"; person.age = 29; 2.字面量表示法 对象字面量是对象定义的一种简写形式,目的在于简化创建包含大量属性的对象过程. var person

从一个简单例子来理解js引用类型指针的工作方式

? 1 2 3 4 5 6 7 <script> var a = {n:1};  var b = a;   a.x = a = {n:2};  console.log(a.x);// --> undefined  console.log(b.x);// --> [object Object]  </script> 上面的例子看似简单,但结果并不好了解,很容易把人们给想绕了--"a.x不是指向对象a了么?为啥log(a.x)是undefined?".&

JS的Object漫想:从现象到“本质”

转自:http://zzy603.iteye.com/blog/973649 写的挺好,用于记录,把对象分成概念的Object(var f={})和 类的Object(function F(){}) ------------------------------------- 前言 首先,要说明的我是一个计算机爱好者,但我并不是科班出身,也没有受过专业的培训,所以,有些专业名词可能用的不当或者看法偏激乃至错误,敬请谅解并给予斧正为盼. 一.Object是什么? 刚开始我简单地认为Object是js

JS查看Object对象的内容

以一个例子来说,下面是他的Object: JS: 如果想直接获取到total的值,那就先把获取到的Json先Eval(),然后json.total就能取到total的值了, 但是如果想取到rows里面的值呢,我们先得进去rows,那就应该是:json.rows,但是我们alert的时候发现,这个rows有三个参数,我们要取第一个的话,那就应该是json.rows[0],然后再取 里面的strUserName或者strUserPwd就应该是Json.rows[0].strUserName了. 假设

JS与Object-C交互补充

有一个场景,用户点击Web页面,产生JS交互时,如何根据JS事件,App做出响应. 我们可以自己做一个简单的js交互,实现基于的原理是: 1. object-c利用stringByEvaluatingJavaScriptFromString:(NSString *)script消息获取uiwebview页面数据. 2. 那么如何监控特定的js事件呢?UIWebViewDelegate的(BOOL)webView:shouldStartLoadWithRequest:navigationType:

JS 对象(Object)和字符串(String)互转

JS 对象(Object)和字符串(String)互转 [javascript] view plaincopy var jsObj = {}; jsObj.testArray = [1,2,3,4,5]; jsObj.name = 'CSS3'; jsObj.date = '8 May, 2011'; var str = JSON.stringify(jsObj); alert(str); 从JSON字符串转为对象 [javascript] view plaincopy var jsObj = 

You Don&#39;t Know JS: this &amp; Object Prototypes( 第一章 this or That?)

Foreword this 关键字和prototypes 他们是用JS编程的基础.没有他们创建复杂的JS程序是不可能的. 我敢说大量的web developers从没有建立过JS Object,仅仅对待这门语言作为一个事件绑定胶水,在按钮和Ajax请求之间. 我也曾是他们的一员,但是当我了解到如何掌握prototypes并创建JS对象,一个世界的可能性对我打开了. Chapter 1: this Or That? Chapter 2: this All Makes Sense Now! Chap

You Don&#39;t Know JS: this &amp; Object Prototypes( 第2章 this)

this is a binding made for each function invocation, based entirely on its call-site (how the function is called). this是为函数被引用而创建的绑定!完全地基于函数如何被调用/函数的call-site! Call-site :the location in code where a function is called call-stack: 调用函数的堆栈.(函数的调用链条,函数

You Don&#39;t Know JS: this &amp; Object Prototypes( 第3章 this和Object Prototypes)

前2章探索了this绑定指向不同的对象需要函数引用的call-site. 但是什么是对象,为什么我们需要指向它们? 本章探索细节. Syntax Type Build-in 对象 Contents Computed Property Names Property vs. Method Arrays Duplicating Objects Property Descriptors Writable Configurable Enumerable Immutability不变 Object Cons