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判断存在风险,因undefined有被修改的可能性,但是void 0返回值一定是undefined
- 兼容性上void 0 基本所有的浏览器都支持
- void 0比undefined字符所占空间少。