虽然我已经阅读了很多关于它的内容,但我无法理解原型概念.
为什么有String和String.prototype?
如果我有"cat":
String还是一个Object?String或继承了所有属性/方法String.prototype?String和String.prototype?String对象和String.prototypeString原型吗?请清楚这一点.
CMS*_*CMS 10
我正在回答这个问题,因为这个主题有很多错误的信息:
那是一个字符串还是一个对象?
否 "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
Run Code Online (Sandbox Code Playgroud)
我稍后会谈到类型和原始值.
它是否从String或String.prototype继承所有属性/方法?
好吧,当你使用属性访问器操作符(点或括号表示法)时,原始值在内部隐式转换为对象,因此所有方法String.prototype都可用,例如:
当您访问:
"cat".chatAt(0);
Run Code Online (Sandbox Code Playgroud)
在幕后"cat"将转换为对象:
Object("cat").chatAt(0);
Run Code Online (Sandbox Code Playgroud)
这就是您可以访问值的所有继承属性的原因.
为什么有String和String.prototype?
String是一个构造函数,允许您创建String对象或进行类型转换:
var stringObj = new String("foo"); // String object
// Type conversion
var myObj = { toString: function () { return "foo!"; } };
alert(String(myObj)); // "foo!"
Run Code Online (Sandbox Code Playgroud)
该String.prototype对象是String对象实例继承的对象.
我知道它很混乱,我们有String值和String对象,但大多数时候你实际上只使用字符串值,现在不要担心String对象.
我应该调用String的String对象和String.prototype的String原型吗?
你应该调用String " String构造函数".
"字符串原型"没问题.
你应该知道,"一切是不是一个对象".
我们来谈谈类型,指定了五种语言类型:
一个原始值是"也就是直接在语言实现的最低水平所代表的数据"的信息,最简单的一块,你可以有.
先前描述的类型的值可以是:
null.undefined.0,3.1416,1000,等.此外NaN,和Infinity.true和false."cat"和"bar".| 归档时间: |
|
| 查看次数: |
300 次 |
| 最近记录: |