(精华)2020年6月25日 JavaScript高级篇 面向对象
发布日期:2021-06-29 15:04:32
浏览次数:3
分类:技术文章
本文共 1867 字,大约阅读时间需要 6 分钟。
ES5-面向对象
一:栈和堆内存空间
//----------值类型(栈)----------var a = 10;var b = a;a++;console.log(a)//11console.log(b)//10//----------引用类型(堆)----------var aa = { };var bb = aa;aa.name = '一起改变';console.log(aa);//{name:一起改变}console.log(bb);//{name:一起改变}
二:值相等== 和全等 ===
// 定义对象和字符串比较var a1 = new String('123'); //对象var a2 = String('123');//stringvar a3 = '123'; //stringa1 == a2 //truea1 ===a2 //falsea2==a3 a2===a3 //truevar b1 = new String('123'); //对象var b2 = new String('123'); //对象console.log(b1 == b2) //false 地址不同JSON.stringify(b1) == JSON.stringify(b2) //true
三:值传递核对引用传递
// 关于值传递(函数内部的更改不影响外部)相当于赋值给另一个变量var num = 50;function add(n) { n = 100;}add(num);console.log(num);// 引用(指针 | 快捷方式)传递 (函数内部的更改会影响外部)var arr = [10, 20, 30];function add2(arr) { console.log(arguments) arr[0] = 99;}add2(arr);console.log(arr);
四:对象的定义
//----------object类型构造函数----------var obj1 = new Object();obj1 .name = "小明";obj1.sleep = function () { console.log(this.name + "在睡觉");};//----------字面量定义 (简单的字面量)----------var obj2 = { };obj2.name = 'alney';obj2.age = '10';var mnk = 'name2'; // 'name2 ' , name3obj2[mnk] = 'Alice';//----------字面量定义 (嵌套字面量)----------var per01 = { name: 'laney', age: '10', action: function () { console.log('run') }}//----------工厂的方式----------function createPerson(name, age) { var obj = new Object() obj.name = name; obj.age = age; obj.action = function () { console.log('run') } return obj;}var c1 = createPerson('hong', 20)var c2 = createPerson('ming', 30)//----------构造函数----------function Person(name, age) { this.name = name; this.age = age; this.action = function () { console.log('run' + this.name) }}var p1 = new Person('laney', 20)
五:原型链
var pm = { name: 'alice'};var newpm = Object.create(pm)newpm.__proto__ === pm//通过谁创建对象原型链就是谁
转载地址:https://codeboy.blog.csdn.net/article/details/106954359 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月05日 09时27分17秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
centos7 基于rsync+inotify 实现定时备份
2019-04-29
指定IP进行 文件的分发
2019-04-29
基于http搭建本地yum仓库
2019-04-29
常规邮件基础
2019-04-29
邮件基础之 -- SMTP协议
2019-04-29
Java设计模式--责任链模式
2019-04-29
OpenCV的cvLoadImage函数
2019-04-29
OpenCV中与matlab中相对应的函数
2019-04-29
C/C++中二维数组作函数形参时,调用函数时,可传递的实参类型的小结
2019-04-29
cvGetSubRect与cvMul用法
2019-04-29
opencv图像处理梯度边缘和角点
2019-04-29
Caffe源码中blob文件分析
2019-04-29
OpenCV 图像采样 插值 几何变换
2019-04-29
图像处理-仿射变换 AffineTransform
2019-04-29
图像二值化----otsu(最大类间方差法、大津算法)
2019-04-29
图像二值化----otsu(最大类间方差法、大津算法)(二)
2019-04-29
OpenCV编程案例:使用轮廓函数检测连通区域
2019-04-29
opencv使用cvFindContours提取联通域
2019-04-29
C++中MessageBox的常见用法
2019-04-29
ordfilt2函数功能说明
2019-04-29