.call和symbol
代码展示:
let boj={
name:"123"
}//先let 一个对象
function text(){
console.log(this)//这次打印的this的结果是window全局对象
}
Function.prototype.mycall=function(thisobj,...args){//要想改变this指向必须去继承原型(接受的参数太多的话可以用...args)...args是剩余参数必须写在最后面
let fnc=this
let s=symbol("and")//为了避免出现覆盖现象运用symbol数据类型 symbol具有唯一性是独一无二的
let ss=objcet.getownpropertysymbols(thisobj)//可以返回对象自有的Symbol属性,原型链上的属性不会被获取。
返回值是存储自有Symbol属性的数组
thisobj[s]=fnc
thisobj[s](args)
console.log(thisobj)
}
text.mycall(obj,1,2,3)
text.call(obj)
浙公网安备 33010602011771号