js 面向对象学习笔记

 更新时间:2023年05月01日 20:41:26   作者:毛台  
这篇文章主要介绍了js 面向对象,需要的朋友可以参考下

数据赋值拷贝

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

引用类型赋值

var obj={
    name:"宅男"
}
function jinhua(param){
    param.name="高富帅";
}
jinhua(obj);
console.log(obj.name);
#高富刷
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]"

delete删除属性

删除对象的属性

删除未用var定义的变量.

  • delete返回布尔
  • 删除不存在的属性,返回true
  • 无法删除原形中的属性 如 delete obj.toString()
resu=delete obj.name;
# resu返回值是true
var num1=100;
console.log(num1);
console.log(window.num1);
# 100 100
num1=100;
console.log(num1);
console.log(window.num1);
# 100 100
var num1=100;
delete(num1); 
console.log(window.num1);
# 100
num1=100; //未使用var,可被delete删除
delete(num1); 
console.log(window.num1);
## undefined

到此这篇关于js 面向对象的文章就介绍到这了,更多相关js 面向对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JS原生带缩略图的图片切换效果

    JS原生带缩略图的图片切换效果

    这篇文章主要介绍了JS原生带缩略图的图片切换效果,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-10-10
  • js实现屏幕自适应局部代码分享

    js实现屏幕自适应局部代码分享

    这篇文章主要介绍了js实现屏幕自适应局部代码分享,需要的朋友可以参考下
    2015-01-01
  • JS中将图片base64转file文件的两种方式

    JS中将图片base64转file文件的两种方式

    这篇文章主要介绍了JS中图片base64转file文件的两种方式,实现把图片的base64编码转成file文件的功能,然后再上传至服务器,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • javascript实现点击图片切换功能

    javascript实现点击图片切换功能

    这篇文章主要为大家详细介绍了javascript实现点击图片切换功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • JS 俄罗斯方块完美注释版代码

    JS 俄罗斯方块完美注释版代码

    JS俄罗斯方块完美注释版 v 1.01 从学c语言那一会儿都想写一个俄罗斯方块,可是每次动起手总觉得难度太大. 今天终于用了大约4个小时写出来了. 其中在涉及到方块变型的时候还咨询了
    2008-11-11
  • Javascript操纵Cookie实现购物车程序

    Javascript操纵Cookie实现购物车程序

    Javascript操纵Cookie实现购物车程序...
    2007-02-02
  • WebRTC媒体权限申请getUserMedia实例详解

    WebRTC媒体权限申请getUserMedia实例详解

    这篇文章主要为大家介绍了WebRTC媒体权限申请getUserMedia实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 通过flv.js播放监控示例深入探究直播流技术

    通过flv.js播放监控示例深入探究直播流技术

    本文记录一下在使用 flv.js 播放监控视频时踩过的各种各样的坑,虽然官网给的 Getting Started 只有短短几行代码,跑一个能播视频的 demo 很容易,但是播放时各种各样的异常会搞到你怀疑人生,下面我将自己踩过的坑,以及踩坑过程中补充的相关知识,详细总结一下
    2023-10-10
  • JavaScript中数组的22种方法必学(推荐)

    JavaScript中数组的22种方法必学(推荐)

    这篇文章主要介绍了JavaScript中数组的22种方法必学(推荐)的相关资料,需要的朋友可以参考下
    2016-07-07
  • js实现网页倒计时、网站已运行时间功能的代码3例

    js实现网页倒计时、网站已运行时间功能的代码3例

    这篇文章主要介绍了js实现网页倒计时、网站已运行时间功能的代码3例,需要的朋友可以参考下
    2014-04-04

最新评论