New操作内部步骤、call/apply/bind区别、alert种类、逗号语句
一、new操作符具体干了什么? var Person = Function(name){ this.name = name } var p = new Person; // new操作符做了以下三件事 var p = {}; // 创建了一个空对象 p.__proto__ = Person.prototype; // 将这个对象的 __proto__成员指向了Person.prototype Person.call(p); // 将Person函数的this指针指向换成p,然后在调用Person函数 二、call 、apply和bind的区别 (一)、相似之处: 1、都是用来改变函数的this对象的指向的。 2、第一个参数都是this要指向的对象。 3、都可以利用后续参数传参。 (二)、区别: 片段一 var xw = { name:'小王', gender:'男', aage:24, say: function(){ alert(this.name + " , " + this.gender + " ,今年" + this.age) } } var xz = { name:'小张', gender: '男', age:25 } xw.say() 片段一,显示为:小王,男,今年24岁。 那么如何用wx的say方法来显示xz的数据呢? 1、call的用法:xw.say.call(xh