如何通过网站实现远程控制并有效更换?
摘要:怎么用网站做远控,网站更换关键词怎么做好,工程建设官方网站,如需郑州网站建设JavaScript 原型链是一个重要的概念,它是 JavaScript 语言实现面向对象编程的核心。在 JavaScript 中&a
怎么用网站做远控,网站更换关键词怎么做好,工程建设官方网站,如需郑州网站建设JavaScript 原型链是一个重要的概念#xff0c;它是 JavaScript 语言实现面向对象编程的核心。在 JavaScript 中#xff0c;每个对象都有一个与之关联的原型#xff0c;并且该对象继承了原型中的属性和方法。这些原型组成了一个原型链#xff0c;可以通过该链追溯到顶层的 …JavaScript 原型链是一个重要的概念它是 JavaScript 语言实现面向对象编程的核心。在 JavaScript 中每个对象都有一个与之关联的原型并且该对象继承了原型中的属性和方法。这些原型组成了一个原型链可以通过该链追溯到顶层的 Object.prototype。
JavaScript 中的每个对象都有一个内部属性[[Prototype]]指向它的原型对象。如果该对象无法在自己的属性中找到一个属性或方法它将查找与其关联的原型对象中的属性或方法。如果还是找不到则会查找原型对象的原型直到找到 Object.prototype即顶层原型。这种机制被称为原型链。
例如假设我们有这样一个对象
let obj {name: Tom,age: 20
};我们可以通过 Object.getPrototypeOf(obj) 来获取 obj 对象的原型输出结果如下
// {constructor: ƒ, __defineGetter__: ƒ, __defineSetter__: ƒ, hasOwnProperty: ƒ, __lookupGetter__: ƒ, …}可以看到obj 对象的原型是 Object.prototype。如果我们访问 obj.toString() 方法由于 obj 对象本身没有该方法JavaScript 将会在原型链上查找该方法找到 Object.prototype 上的 toString() 方法并执行。从而实现了对 obj.toString() 方法的调用。
在 JavaScript 中我们可以通过构造函数创建对象的实例。例如
function Person(name) {this.name name;
}
let p new Person(Tom);在这个例子中我们首先定义了一个名为 Person 的构造函数它有一个参数 name用于接收人名。在实例化一个 Person 对象时我们通过 new 操作符调用了该构造函数并传递了一个参数 “Tom”。在这个过程中JavaScript 会自动为新创建的对象设置一个原型即 Person.prototype。我们可以通过 Object.getPrototypeOf§ 或 p.proto 访问该对象的原型。
当我们在实例 p 上访问属性时如果 p 对象本身没有该属性则会通过原型链查找该属性。例如如果我们在 p 对象上访问 p.toString() 方法由于 p 对象本身没有该方法JavaScript 将会在原型链上查找该方法找到 Person.prototype 上的 toString() 方法并执行。如果 Person.prototype 上也没有该方法则会在原型链的上一级继续查找即 Object.prototype 上查找该方法。如果还是找不到则会返回 undefined。
在 JavaScript 中我们可以通过给对象的原型对象添加属性和方法来实现继承。例如
function Animal() {}
Animal.prototype.walk function() {console.log(Animal is walking);
};
function Dog() {}
Dog.prototype Object.create(Animal.prototype);
Dog.prototype.bark function() {console.log(Dog is barking);
};
let d new Dog();在这个例子中我们首先定义了一个名为 Animal 的构造函数并在其原型对象上添加了一个 walk() 方法。然后我们定义了一个名为 Dog 的构造函数它通过 Object.create() 方法继承了 Animal.prototype并在其原型对象上添加了一个 bark() 方法。最后我们通过 new 操作符创建了一个 Dog 的实例 d。
在实例 d 上访问 walk() 和 bark() 方法时如果 d 对象本身没有该方法则会通过原型链查找该方法。如果在 Dog.prototype 和 Animal.prototype 上都找不到该方法则会在 Object.prototype 上查找如果还是找不到则会返回 undefined。
