javascript笔记---貌似大叔
1、原型式继承和类式继承的区别
在基于类的面向对象方式中,对象(object)依靠类(class)来产生。而在基于原型的面向对象方式中,对象(object)则是依靠 构造器(constructor)利用 原型(prototype)构造出来的。
a:原型继承
var father = function(){};
father.prototype = {
add:function(){
console.log('a的原型方法:加法')
},
delete:function(){
console.log('a的原型方法:减法')
}
}
var son = new father();
smSon.add()
b:类式继承
function Super(){
this.colors=["red","blue"];
console.log(this.color)
}
function Sub(){
Super.call(this);
}
var cb = new Sub();
console.log(cb.colors)
console.log(cb)
2、单例模式
function Construct(){
// 确保只有单例
if( Construct.unique !== undefined ){
return Construct.unique;
}
// 其他代码
this.name = "NYF";
this.age="24";
Construct.unique = this;
}
var t1 = new Construct() ;
var t2 = new Construct() ;
console.log(t1===t2)
3、数组去重
方式一:把第一个元素先放入结果中再来遍历结果数据和原数组
Array.prorotype.unique = function(){
var result = [this[0]]; var repeat = false; for(var i=0;i<this.length; i++){ for(var j=0;j<result.length;j++){ if(result[j]==this[i]){ repeat = true; break; } } if(!repeat){ result.push(this[i]) } } } 方式二:把相同的内容放到一个对象中作为一个对象的属性,并赋值为1(真值),当存在时就取假值!1,这个做法很聪明,想法很独特
Array.prototype.unique2 = function(){
var result = [];
var json = {};
for(var i=0; i<this.length; i++){
if(!json[this[i]]){
result.push(this[i])
json[this[i]] = 1;
}
}
}
javascript笔记---貌似大叔的更多相关文章
- [Effective JavaScript 笔记] 第4条:原始类型优于封闭对象
js有5种原始值类型:布尔值.数字.字符串.null和undefined. 用typeof检测一下: typeof true; //"boolean" typeof 2; //&q ...
- [Effective JavaScript 笔记] 第5条:避免对混合类型使用==运算符
“1.0e0”=={valueOf:function(){return true;}} 是值是多少? 这两个完全不同的值使用==运算符是相等的.为什么呢?请看<[Effective JavaSc ...
- [Effective JavaScript 笔记]第3章:使用函数--个人总结
前言 这一章把平时会用到,但不会深究的知识点,分开细化地讲解了.里面很多内容在高3等基础内容里,也有很多讲到.但由于本身书籍的篇幅较大,很容易忽视对应的小知识点.这章里的许多小提示都很有帮助,特别是在 ...
- [Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码
函数是一种将代码作为数据结构存储的便利方式,代码之后可以被执行.这使得富有表现力的高阶函数抽象如map和forEach成为可能.它也是js异步I/O方法的核心.与此同时,也可以将代码表示为字符串的形式 ...
- [Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法
js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+ ...
- 从头开始学JavaScript 笔记(一)——基础中的基础
原文:从头开始学JavaScript 笔记(一)--基础中的基础 概要:javascript的组成. 各个组成部分的作用 . 一.javascript的组成 javascript ECMASc ...
- 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight
做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...
- JavaScript笔记目录
JavaScript笔记目录 一.JavaScript简介 二.在HTML中使用JavaScript ...持续更新中,敬请期待
- 蛋糕仙人的javascript笔记
蛋糕仙人的javascript笔记:https://www.w3cschool.cn/kesyi/kesyi-nqej24rv.html
随机推荐
- C/C++学习站点资源
学习论坛: 轩辕软件论坛 中国IT实验室C/C++论坛 编程爱好者论坛 编程中国论坛 进阶站点: 浙江工业 http://acm.zjut.edu.cn 浙江大学 http://acm.zju.edu ...
- 实时数据采集传输软件LDM配置
本环境一共两个机器:cma.ldm87.gov.cn(hostname)机器作为upstream LDM,cma.ldm84.gov.cn(hostname)机器作为downstream LDM.下面 ...
- myloader原理0
开源MySQL多线程逻辑导入工具myloader原理与改进 在上一篇中,介绍了多线程备份工具mydumper的实现及网易对其所做的优化,本篇聊聊与mydumper配合使用的myloader工具. my ...
- C++_快速排序
void quick_sort(int s[],int l,int r) { if(l<r) { int i=l,j=r,x=s[l]; while(i<j) { while( i< ...
- c语言例子递归与整数逆序
例一 #include <stdio.h> //将一整数逆序后放入一数组中(要求递归实现) void convert(int *result, int n) { if(n>=10) ...
- Linux 学习笔记 cp 和 ln
最近在重温大学的经典课程:Linux.每天工作之余的时间,坐在家里的阳台上,简简单单的纪录一些基本的知识点,对我来说,既温暖又难得. 有朋友问我关于cp和ln建立符号链接(软链接)和硬链接的一些问题, ...
- React Redux Sever Rendering实战
# React Redux Sever Rendering(Isomorphic JavaScript)  值得注意的是两个方向找值不是找到一个去掉一个,而是找到后同时去掉. 还有输出也很坑爹! 在这里不得不抱怨下Uva的o ...
- python(4)–yield实现异步
首先我们假设一个情景:一个人做包子,一次只能做一个:来了两个吃包子的,做包子做好了包子依次分给两个吃包子的. 先上代码: import time ''' 一个做包子吃包子模型,一个做包子的,两个吃包子 ...