学技巧网站制作,怎么看网站开发语言信息,如何做网络营销推广,wordpress空间满目录
作用
原型链
引用类型#xff1a;__proto__(隐式原型)属性#xff0c;属性值是对象函数#xff1a;prototype(原型)属性#xff0c;属性值是对象
Function#xff1a;本身也是函数
相关方法
person.prototype.isPrototypeOf(stu)
Object.getPrototypeOf(objec…目录
作用
原型链
引用类型__proto__(隐式原型)属性属性值是对象函数prototype(原型)属性属性值是对象
Function本身也是函数
相关方法
person.prototype.isPrototypeOf(stu)
Object.getPrototypeOf(object)替换已不推荐的object._ _ proto _ _
Object.create(instance) 以一个现有对象作为原型创建一个新对象
Object.hasOwn(obj,属性)判断是否为自有属性
应用
new
函数装饰器在一个函数 执行前 或 执行后 添加额外的逻辑
判断数据类型
运算符
typeof判断 基本数据类型
typeof nullObject 类型标签均为000
实例 instanceof 构造函数判断原型链和isPrototypeOf
方法
构造函数.prototype.isPrototypeOf(实例) 判断原型链
(数据).constructor 数据类型不包含继承类型
显示toStringvalueOf 除了nullundefined
valueOfthis 值转换成对象。除了Date都是返回数据本身
console.log
toString重写对象的类型转换。console.log 作用
原型被定义为给其它对象提供共享属性的对象函数的实例可以共享原型上的属性和方法
原型链
引用类型__proto__(隐式原型)属性属性值是对象函数prototype(原型)属性属性值是对象 const o {a: 1,b: 2,// __proto__ 设置了 [[Prototype]]。它在这里被指定为另一个对象字面量。__proto__: {b: 3,c: 4,__proto__: {d: 5,},},
};// { a: 1, b: 2 } --- { b: 3, c: 4 } --- { d: 5 } --- Object.prototype --- nullconsole.log(o.d); // 5Function本身也是函数
console.log(Function.prototype Function.__proto__); // true
Function 本身是一个函数。而所有函数都是Function 的实例。所以 Function是Function的实例
相关方法
person.prototype.isPrototypeOf(stu)
Object.getPrototypeOf(object)替换已不推荐的object._ _ proto _ _
Object.create(instance) 以一个现有对象作为原型创建一个新对象
Object.hasOwn(obj,属性)判断是否为自有属性
应用
new
var a1;
function fn1(){var a2;console.log(this.aa);
}
//f1并没有被作为对象的方法调用, this 指向全局对象,在浏览器中是 window
f1();//3 function fn2(){var a10;fn1();
}
//在 fn2 函数内部调用 fn1 函数但是 fn1 函数内部的 this 仍然指向全局对象 window因为 fn1 并没有被作为方法调用。
fn2();//3 var fn3function(){this.a3;
}
fn3.prototype{a:4
}
var fn33new fn3();
fn1.call(fn33)
//5
函数装饰器在一个函数 执行前 或 执行后 添加额外的逻辑
Function.prototype.beforefunction(beforefn){return (){beforefn.apply(this,arguments)return this.apply(this,arguments)}
}
Function.prototype.afterfunction(afterfn){return (){var resthis.apply(this,arguments)afterfn.apply(this,arguments)return res;}
}var funcfunction(){console.log(1)
}.before(function(){console.log(2)
}).after(function(){console.log(3)
})
func()//213
判断数据类型
运算符
typeof判断 基本数据类型
typeof nullObject 类型标签均为000
实例 instanceof 构造函数判断原型链和isPrototypeOf
Object.prototype.isPrototypeOf({})// true
{} instanceof Object// true
Object instanceof Object//true
Function instanceof Function//true
方法
构造函数.prototype.isPrototypeOf(实例) 判断原型链
(数据).constructor 数据类型不包含继承类型
显示toStringvalueOf 除了nullundefined
valueOfthis 值转换成对象。除了Date都是返回数据本身
console.log toString重写对象的类型转换。console.log