js call

js 中 function 其实就是 class,function name 就是 class name;

在方法体中,想要实现继承的效果,可以通过 call 来实现:

call 方法更改对象内部 this 的指向;

function Animal(name){
	this.name = name;
	this.showName = function(){
		console.log(name)
	}
}

function Dog(name){
	Animal.call(this, name);
}

var dog = new Dog("wangwang");
dog.showName();
// output: wangwang;
// 这里 Animal.call(this, name) 的意思是调用 Animal 的构造函数,也就是 Animal 方法,将内部的属性和方法绑定到 Dog 实例上。

apply

bind

void 0

因为 undefined 是全局变量,以前一些浏览器可以修改其值,所以更加严谨些的情况最好使用 void 0/void(0) 来判断,这样永远获得的都是 undefined。
目前大部分的新版浏览器都将 undefined 设置为只读,但是有些情况可能会误会。

var win = {}
win.undefined = 1
console.log(win.undefined == undefined) // false
if(win.undefined) console.log('pass')

优点如下:

  1. 某些情况下用undefined判断存在风险,因undefined有被修改的可能性,但是void 0返回值一定是undefined
  2. 兼容性上void 0 基本所有的浏览器都支持
  3. void 0比undefined字符所占空间少。

base64

var link = 'aHR0cHM6Ly93d3cuYmFpZHUuY29tL3M/d2Q9YmFzZTY0'

// base64 解码
var origin = atob(link)
console.log(origin)

// base64 编码
link = btoa(origin)
console.log(link)
posted @ 2023-09-16 15:31  灵火  阅读(11)  评论(0编辑  收藏  举报