本文共 1694 字,大约阅读时间需要 5 分钟。
Object.create 的应用Object.create 是 JavaScript 中用于创建对象的重要工具。它接受两个参数:第一个参数表示要继承的对象,第二个参数(可选)用于对新对象进行初始化。
1. 对象初始化
var Obj = { name: 'mini', age: 3, show: function () { console.log(this.name + " is " + this.age); } };var MyObj = Object.create(Obj, { like: { value: "fish", writable: true, configurable: true, enumerable: true }, hate: { configurable: true, get: function () { console.log(111); return "mouse" }, set: function (value) { console.log(value, 2222); return value; } }); MyObj.name 输出 mini。MyObj.like 初始化为 "fish",且可以通过 MyObj.like = "peanut" 修改为 "peanut"。MyObj.hate 的 get 方法会输出 111,set 方法则会输出修改后的值。2. 继承机制
var A = function () {}; A.prototype.sayName = function () { console.log('a'); };var B = function () {}; B.prototype = Object.create(A.prototype); var b = new B(); b.sayName(); // 输出 'a'// 修改 B 的 prototypeB.prototype = { sayName: function () { console.log("b"); }};var b1 = new B(); b1.sayName(); // 输出 'b'// A 实例保持不变var a1 = new A(); a1.sayName(); // 输出 'a' 3. 原型链原理
var A = function () {}; var a = new A(); console.log(a.__proto__); // 输出 A {}console.log(a.__proto__.__proto__); // 输出 Object {}console.log(a.__proto__.__proto__.__proto__); // 输出 null 1. 字面量方式
var a = {}; console.log(a.__proto__); // 输出 Object {} 2. 构造器方式
var A = function () {}; var a = new A(); console.log(a.__proto__); // 输出 A {} 3. Object.create 方式
var a1 = { a: 1 }; var a2 = Object.create(a1); console.log(a2.__proto__); // 输出 Object {a: 1} 以上内容通过多种方式展示了 JavaScript 对象模型的实现原理,结合实际案例,帮助开发者更好地理解和应用。
转载地址:http://xynfk.baihongyu.com/