数据赋值拷贝

1,值得赋值是独立的

  1. num1=12;
  2. num1=num2

将存储值赋值一份存储.

2,

  1. var age=22;
  2. age2=age;
  3. age=24
  4. console.log(age);
  5. age2依旧是22

引用类型的赋值共享数据

指向同一片内存

3,对象的赋值

  1. var p={
  2. name:"shizi",
  3. age:22,
  4. }
  5. p1=p;
  6. console.log(p.name,p.age);
  7. console.log(p1.name,p1.age);
  8. console.log("------------------------");
  9. p.name="maotai";
  10. p.age=24;
  11. console.log(p.name,p.age);
  12. console.log(p1.name,p1.age);

值类型赋值--函数形参&实参

  1. var num = 10;
  2. function foo(num){
  3. num=100;
  4. console.log(num);
  5. }
  6. console.log(num);
  7. #10
  1. var num = 10;
  2. function foo(num1){
  3. //实参: 调用时传递的参数
  4. //形参: 定义时传递的参数
  5. num1=100;
  6. console.log(num1);
  7. }
  8. foo(num);
  9. console.log(num);
  10. # 10 100 10
  1. var num = 10;
  2. function foo(num1){
  3. //实参: 调用时传递的参数
  4. //形参: 定义时传递的参数
  5. //var num1=num;
  6. num1=100;
  7. console.log(num1);
  8. }
  9. foo(num);
  10. console.log(num);
  11. # 10 100 10

引用类型赋值

1

  1. var obj={
  2. name:"宅男"
  3. }
  4. function jinhua(param){
  5. param.name="高富帅";
  6. }
  7. jinhua(obj);
  8. console.log(obj.name);
  9. #高富刷

2

  1. var obj={
  2. name:"宅男"
  3. }
  4. function jinhua(param){
  5. param.name="高富帅";
  6. //重新开辟内存,param重新指向一片mem
  7. param={
  8. name: "腐女"
  9. }
  10. param.name="宅男";
  11. }
  12. jinhua(obj);
  13. console.log(obj.name);
  14. #宅男

对象的动态性

动态添加属性和方法

  1. p={
  2. name:"刘德华",
  3. age:22
  4. }
  5. //添加属性方式1
  6. p.gender="male";
  7. //添加属性方式2
  8. p["salary"]=2000;
  9. //添加对象类型属性
  10. p.foo=function(){console.log("sing");}
  11. //访问属性方式1
  12. console.log(p.foo());
  13. console.log(p.salary);
  14. //访问属性方式2
  15. console.log(p["name"];
  1. p={
  2. name:"刘德华",
  3. age:22
  4. }
  5. p["salary"]=2000; //是字符串
  6. console.log(p.salary);
  1. p={
  2. name:"刘德华",
  3. age:22
  4. }
  5. p[0]=2000; //隐式将0转换为字符串
  6. //console.log(p.0); //发现这种方式访问报错
  7. console.log(p["0"]); //这种方式正常访问

以下等价

  1. p={
  2. name:"刘德华",
  3. age:22
  4. }
  5. p[{}]="shizi";
  6. console.log(p);
  1. p={
  2. name:"刘德华",
  3. age:22
  4. }
  5. p["[object Object]"]="shizi";
  6. console.log(p);

探究

  1. a={}
  2. console.log(a.toString());
  3. #"[object Object]"

[js]面向对象1的更多相关文章

  1. js面向对象学习 - 对象概念及创建对象

    原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...

  2. 带你一分钟理解闭包--js面向对象编程

    上一篇<简单粗暴地理解js原型链--js面向对象编程>没想到能攒到这么多赞,实属意外.分享是个好事情,尤其是分享自己的学习感悟.所以网上关于原型链.闭包.作用域等文章多如牛毛,很多文章写得 ...

  3. JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  4. JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  5. JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  6. js面向对象的实现(example 二)

    //这个方法和上篇文章(js面向对象的实现(example 一))中的方法类似,但是更为简洁 //通过函数赋值的方式来构造对象 //同样通过闭包的方式来封装对象及内部变量 (function () { ...

  7. 浅谈JS面向对象之创建对象

    hello,everybody,今天要探讨的问题是JS面向对象,其实面向对象呢呢,一般是在大型项目上会采用,不过了解它对我们理解JS语言有很大的意义. 首先什么是面向对象编程(oop),就是用对象的思 ...

  8. js面向对象,有利于复用

    需求:在网页上添加个天气预报. 以前总是在需要执行js的地方,直接写function(){}.在需要同样功能的地方直接copy,或者稍微修改. 然后在网上看看有没有好点的方法,然后就看到js面向对象编 ...

  9. JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)

    函数声明 JavaScript中声明函数的方式:(无需声明返回值类型) function add(i1, i2) {             return i1 + i2;//如果不写return返回 ...

  10. 原生JS面向对象思想封装轮播图组件

    原生JS面向对象思想封装轮播图组件 在前端页面开发过程中,页面中的轮播图特效很常见,因此我就想封装一个自己的原生JS的轮播图组件.有了这个需求就开始着手准备了,代码当然是以简洁为目标,轮播图的各个功能 ...

随机推荐

  1. pandas DataFrame(5)-合并DataFrame与Series

    之前已经学过DataFrame与DataFrame相加,Series与Series相加,这篇介绍下DataFrame与Series的相加: import pandas as pd s = pd.Ser ...

  2. 【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

    第二课 传统神经网络 <深度学习>整体结构: 线性回归 -> 神经网络 -> 卷积神经网络(CNN)-> 循环神经网络(RNN)- LSTM 目标分类(人脸识别,物品识别 ...

  3. 【css】垂直居中的几种写法

    结构 <div class="vam"> <div class="vam-body">垂直居中</div> </div ...

  4. HTTP 02 HTTP1.1 协议

    发送请求: 返回时, content-type 与 HTTP 正文之间有一个空格 HTTP 是不保存状态协议, 也就是说在 HTTP 这个级别, 协议对于发送过的请求或相应都不做持久化处理. 但是, ...

  5. 字节输入流:io包中的InputStream为所有字节输入流的父类。

    字节输入流:io包中的InputStream为所有字节输入流的父类. Int read();读入一个字节(每次一个): 可先使用new  byte[]=数组,调用read(byte[] b) read ...

  6. C#.NET接收JSON数组

    如果要在后台接收类似以下的JSON数据 试了object.Array.Hashtable等类型都收不到,string[]数组的话只收到长度,内容还是空的,最后想到用List<string> ...

  7. Mixed Content: xxx This request has been blocked; the content must be served over HTTPS.

    在升级https的过程中,出现如下问题: Mixed Content: The page at 'https://www.xxx.com/denglu.html' was loaded over HT ...

  8. linux cent os 6.5安装Nginx

    1.下载相关组件 yum install -y gcc gcc-c++ 安装C/C++编译器 wget http://sourceforge.net/projects/pcre/files/pcre/ ...

  9. SpringBoot------集成MyBatis报错

    在spring boot启动main方法所在的类中加入 @MapperScan注入后报错: Invalid default: public abstract java.lang.Class org.m ...

  10. 四、Sql Server 基础培训《进度4-插入数据(实际操作)》

    知识点: 假设有订单表 CREATE TABLE Order ( ID int identity(1,1) not null primary key, --内码 BillNo varchar(100) ...