数据赋值拷贝

1,值得赋值是独立的

num1=12;
num1=num2

将存储值赋值一份存储.

2,

var age=22;
age2=age;
age=24
console.log(age);
age2依旧是22

引用类型的赋值共享数据

指向同一片内存

3,对象的赋值

var p={
name:"shizi",
age:22,
}
p1=p;
console.log(p.name,p.age);
console.log(p1.name,p1.age);
console.log("------------------------"); p.name="maotai";
p.age=24;
console.log(p.name,p.age);
console.log(p1.name,p1.age);

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

var num = 10;
function foo(num){
num=100;
console.log(num);
} console.log(num);
#10
var num = 10;
function foo(num1){
//实参: 调用时传递的参数
//形参: 定义时传递的参数
num1=100;
console.log(num1);
}
foo(num);
console.log(num);
# 10 100 10
var num = 10;
function foo(num1){
//实参: 调用时传递的参数
//形参: 定义时传递的参数
//var num1=num;
num1=100;
console.log(num1);
}
foo(num);
console.log(num);
# 10 100 10

引用类型赋值

1

var obj={
name:"宅男"
} function jinhua(param){
param.name="高富帅";
} jinhua(obj);
console.log(obj.name);
#高富刷

2

var obj={
name:"宅男"
} function jinhua(param){
param.name="高富帅";
//重新开辟内存,param重新指向一片mem
param={
name: "腐女"
}
param.name="宅男";
} jinhua(obj);
console.log(obj.name);
#宅男

对象的动态性

动态添加属性和方法

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

以下等价

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

探究

a={}
console.log(a.toString());
#"[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. [HDFS Manual] CH1 HDFS体系结构

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  2. Js 跳出两级循环的方法

    做过一个复杂的验证方法,需要两层each验证之后反正报错的信息.因为双重循环的问题,纠结了很久. /** * 验证input 的值 是否输入 flg:验证成功 false:验证失败 */ functi ...

  3. zoj 3430 Detect the Virus(AC自己主动机)

    Detect the Virus Time Limit: 2 Seconds      Memory Limit: 65536 KB One day, Nobita found that his co ...

  4. mybatis中_parameter使用和常用sql

    mybatis中_parameter使用和常用sql   mybatis中_parameter使用和常用sql 在用自动生成工具生成的mybatis代码中,总是能看到这样的情况,如下: <sel ...

  5. php -- func_get_args

    该方法必须在某个方法内部执行才有效 返回值为索引数组,一个数组元素对应一个参数

  6. 从头配置,开发 cocos2dx 3.14.1

    要使用cocos2dx写一个麻将测试工具. 配置流程如下: 1. 下载安装最新版本的VS(VS2017): https://www.visualstudio.com/zh-hans/downloads ...

  7. HTML使用CSS样式的方法

      在html网页中引入css样式表主要有一下四种方法 1.行内引入 <p ></p> 2.嵌入式 <style type="text/css"> ...

  8. Android新特性介绍,ConstraintLayout完全解析

    今天给大家带来2017年的第一篇文章,这里先祝大家新年好. 本篇文章的主题是ConstraintLayout.其实ConstraintLayout是Android Studio 2.2中主要的新增功能 ...

  9. vim 撤销 回退操作

    在vi中按u可以撤销一次操作 u   撤销上一步的操作Ctrl+r 恢复上一步被撤销的操作 注意:如果你输入“u”两次,你的文本恢复原样,那应该是你的Vim被配置在Vi兼容模式了.重做如果你撤销得太多 ...

  10. 给table加边框的样式

    <style> .tb { width: 1600px; text-align: center; border-collapse: collapse; } .tb tr td { bord ...