Javascript中的原型

前端之家收集整理的这篇文章主要介绍了Javascript中的原型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

虽然我已经阅读了很多关于它的内容,但我无法理解原型概念.

为什么有String和String.prototype?

如果我有“猫”:

>那是字符串还是对象?
>它是否从String或String.prototype继承了所有属性/方法
>为什么有String和String.prototype?
>我应该调用String的String对象和String.prototype的String原型吗?

请清楚这一点.

最佳答案
我正在回答这个问题,因为这个主题有很多错误的信息:

Is that a String or an Object?

没有“cat”是原始字符串值:

typeof "cat"; // "string",a String value
"cat" instanceof String; // false


typeof new String("cat"); // "object",a String object
new String("cat") instanceof String; // true

我稍后会谈到类型和原始值.

Does it inherits all properties/methods from String or String.prototype?

好吧,当你使用property accessor operator(点或括号表示法)时,原始值在内部隐式转换为object,因此String.prototype上的所有方法都可用,例如:

当您访问:

"cat".chatAt(0);

在幕后“猫”被转换为对象:

Object("cat").chatAt(0);

这就是您可以访问值的所有继承属性的原因.

Why is there a String and String.prototype?

String是一个构造函数,允许您创建String对象或进行类型转换:

var stringObj = new String("foo"); // String object

// Type conversion
var myObj = { toString: function () { return "foo!"; } };

alert(String(myObj)); // "foo!"

String.prototype对象是String对象实例继承的对象.

我知道它很混乱,我们有String值和String对象,但大多数时候你实际上只使用字符串值,现在不要担心String对象.

Should I call String the String object and String.prototype the String prototype?

你应该调用String “The String constructor”.

“字符串原型”没问题.

你应该知道“一切都不是一个对象”.

我们来谈谈类型,有五个language types指定:

>字符串
>数量
>布尔值
>空
>未定义

primitive value是“直接表示语言实现最低级别的数据”,是您可以拥有的最简单的信息.

先前描述的类型的值可以是:

> Null:值null.
>未定义:值未定义.
>数字:所有数字,例如0,3.1416,1000等.还有NaN和无穷大.
>布尔值:值true和false.
> String:每个字符串,例如“cat”和“bar”.

原文链接:https://www.f2er.com/js/429352.html

猜你在找的JavaScript相关文章