对象之间发生的JavaScript继承是通过原型完成的。
JavaScript的内置继承方法称为原型链,或原型遗传。
对象实例从原型继承属性。
这是原型链:一个对象继承自它的原型,而该原型继而从其原型继承,等等。
所有对象都自动继承自Object除非另有规定。
所有对象都继承自Object.prototype。
通过对象字面量定义的任何对象的[[Prototype]]设置为Object.prototype。
var book = {
title : "JavaScript"
};
var prototype = Object.getPrototypeOf(book);
console.log(prototype === Object.prototype); // true
在过去几章中使用的几种方法是在Object.prototype上定义,因此被所有其他对象继承。
这些方法是:
描述 | 描述 |
---|---|
hasOwnProperty() | 确定是否存在具有给定名称的自有属性 |
propertyIsEnumerable() | 确定自己的属性是否是可枚举的 |
isPrototypeOf() | 确定对象是否是另一个的原型 |
valueOf() | 返回对象的值表示形式 |
toString() | 返回对象的字符串表示形式 |
这五个方法都是从Object。
每当在对象上使用运算符时,就会调用valueOf()方法。
默认情况下,valueOf()返回对象实例。
原始包装器类型覆盖valueOf(),以便它返回一个字符串forString,布尔值的布尔值和Number的数字。
Date对象的valueOf()方法返回以毫秒为单位的历元时间。
以下代码显示如何在与比较运算符一起使用时调用valueOf()方法。
var now = new Date();
var earlier = new Date(2010, 1, 1);
console.log(now > earlier); // true
上面的代码生成以下结果。
上面的代码生成以下结果。...
每当JavaScript期望一个字符串时,它也会对原语值进行隐式调用。
每当JavaScript期望一个字符串时,它也会对原语值进行隐式调用。...
var book = {
title : "JavaScript"
};
var message = "Book = " + book;
console.log(message); // "Book = [object Object]"
var book = {
title : "JavaScript",
toString : function() {
return "[Book " + this.title + "]"
}
};
var message = "Book = " + book;
console.log(message);
上面的代码生成以下结果。
默认情况下,所有对象从Object.prototype继承,因此对Object的更改会影响所有对象。
Object.prototype.add = function(value) {
return this + value;
};
var book = {
title : "Javascript"
};
console.log(book.add(5));
console.log("title".add("end"));
上面的代码生成以下结果。
window.navigator 对象包含有关访问者浏览器的信息。 Window Navigator window.navigator 对象在编写时可不使用 window 这个前缀...
使用JavaScript来访问和控制浏览器对象实例。 Window 对象弹出一个警告框 弹出一个带折行的警告框 弹出一个确认框,并提醒访客点...
在众多语言中,JavaScript已经占有重要的一席之地,利用JavaScript我们可以做很多事情 , 应用广泛。在web应用项目中,需要大量J...
Linux split命令 Linux 命令大全Linux split命令用于将一个文件分割成数个。该指令将大文件分割成较小的文件,在默认情况下将按...