您的位置:首页 > 游戏 > 手游 > 怎么制作微信公众号文章_网页设计推荐网站_济南seo整站优化招商电话_bt蚂蚁磁力搜索天堂

怎么制作微信公众号文章_网页设计推荐网站_济南seo整站优化招商电话_bt蚂蚁磁力搜索天堂

2025/5/1 2:24:16 来源:https://blog.csdn.net/Li_Ning21/article/details/147125117  浏览:    关键词:怎么制作微信公众号文章_网页设计推荐网站_济南seo整站优化招商电话_bt蚂蚁磁力搜索天堂
怎么制作微信公众号文章_网页设计推荐网站_济南seo整站优化招商电话_bt蚂蚁磁力搜索天堂

这些年也面试了一些外包同事,不知道其他面试官的想法,但就我而言,我更喜欢听到的是口述代码的方式:

比如下述代码

function Animal(age) {this.age = age; // 设置新对象的属性
}const cat = new Animal("8");

最有效的回答就是把如下的代码跟面试官口述一下:

// 相当于:/*1. const cat = {};2. cat.__proto__ = Animal.prototype;3. Animal.call(cat, "8");4. 返回 cat*/
console.log(cat.age); // "8"

在这里插入图片描述

主要做了什么呢:

  1. new Animal(“8”) 创建了一个空对象 {}。
  2. 把这个空对象的“内部指针”指向 Animal.prototype(这就是 proto 的作用)。
  3. 把 this 绑定到这个新对象上,执行函数体(给对象加了 age 属性)。
  4. 返回这个新对象,赋值给 cat

那么__proto__和prototype有什么区别

  1. prototype是函数都会有的一个属性(对象),它包含了通过这个构造函数创建的实例可以拥有的属性和方法,new对象时,新对象的__proto__(原型)会指向Animal(构造函数)的prototype。
  2. proto__是对象(普通对象、数组、函数等)的一个隐藏属性,它指向了Animal(构造函数)的prototype(原型对象),如:访问cat对象时,如果某个属性找不到,它就会沿着__proto,去找Animal.prototype。

call如何理解

  1. call()、apply()、bind() 都是用来重定义 this 这个对象的
  2. call 的参数是直接放进去的,第二第三第 n 个参数全都用逗号分隔;bind 除了返回是函数以外,它 的参数和 call 一样;apply 的所有参数都必须放在一个数组里面传进去
const obj = {name: 'cat',age: this.age,fun: function(fromCity, toCity) {console.log(this.name + this.age, fromCity, toCity)}
}
const toThis = {name: 'dog',age: 18
}
obj.fun.call(toThis,'深圳','南通') // dog18 深圳 南通
obj.fun.apply(toThis,['深圳','南通']) // dog18 深圳 南通 
obj.fun.bind(toThis,'深圳','南通')() // dog18 深圳 南通 

在这里插入图片描述

原型链和this指向是老生常谈的知识点,反复看更容易记忆。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com