解析:
Facebook 出品, 倡导数据的不可变性, 用的最多就是 List 和 Map.
解析:
// 检测 l 的原型链(__proto__)上是否有 r.prototype,若有返回 true,否则 false
function myInstanceof (l, r) {
var R = r.prototype
while (l.__proto__) {
if (l.__proto__ === R) return true
}
return false
}
解析:
// 严格模式下, 隐式绑定丢失后 this 不会指向 window, 而是指向 undefined
'use strict'
var a = 2
var obj = {
a: 1,
b: function() {
// console.log(this.a)
console.log(this)
}
}
var c = obj.b
c() // undefined
解析:
并不是严格意义的 js 的超集, 与 js 不完全兼容, 会报错
更多的限制, 是一种桎梏
有些 js 第三方库没有 dts, 有问题
解析:
构造函数中没有显示的创建 Object 对象, 实际上后台自动创建了
直接给 this 对象赋值属性和方法, this 即指向创建的对象
没有 return 返回值, 后台自动返回了该对象
// 模拟构造函数实现
var Book = function(name) {
this.name = name;
};
//正常用法
var java = new Book(‘Master Java’);
//使用代码模拟,在非 IE浏览器中测试,IE浏览器不支持
var python = {};
python.__proto__ = Book.prototype;
Book.call(python, 'Master Python');