JavaScript语言核心(一)-- prototype
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript语言核心(一)-- prototype,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1692字,纯文字阅读大概需要3分钟。
内容图文
类似C++强类型的静态语言中,类型 决定了 值具备的属性及method。设计好的类型在running的过程中,无法变更
JavaScript弱类型 动态语言中没有 class 即 语言中是"没有类型",对象的类型 是由运行过程中的值决定。
- 本类型不具备的方法借用其他类型的方法
- 扩展其他类型
字符串类型 不具备join方法,但可以借用 其他类型 Array中的方法 let str = ‘foo‘; var res = Array.prototype.join.call(str,‘-‘); //output:‘f-o-o‘ 在 Number.prototype 对象上,部署一个 iterate 方法 Number.prototype.iterate = function () { var result = []; for (var i = 0; i <= this; i++) { result.push(i); } return result; }; (8).iterate() // [0, 1, 2, 3, 4, 5, 6, 7, 8]
值 与 类型(值类型 及 引用类型)
in instanceof hasOwnProperty typeof
基本6中类型:Number、String、Object、null、undefined、Boolean。
其中Array及Function是Object的子类型。
所有 typeof返回值是"object"的对象,其内部都包含 内部属性[[Class]],通过
Object.prototype.toString()来访问
Object.prototype.toString.call(item) === ‘[object Array]‘;
C++中对赋值及参数的传递,通过 value-copy 与 reference-copy,是由语法来决定,比如显示 int& para;
而JavaScript中完全是由值的类型来决定。
`JavaScript 一切皆对象` 这句话有问题,比如标量类型的值,就不是对象(不具备属性及方法) var a = 2; a.toString(); a.xy = ‘hahha‘ 而相应的C#确实现了一切皆对象 http://www.cnblogs.com/mrcooldog/archive/2008/03/03/1088769.html
标量基本类型值:字符串、数值、布尔、symbol 它们有相应的封装类型 String() Number()(类似其它语言中 boxing与unboxing)
复合类型值--对象:数值、函数、自定义对象。
let a = 3; let b = a; // value-copy; let d = [1,2,3]; let c = d; // reference-copy;
JavaScript对象分为两种类型
- 普通对象
- 函数对象
普通对象包括:new obj、{}、prototype
函数对象:function(){}
所有对象都具备 __proto__属性,它构成了 继承链表,在某些浏览器环境下,无法访问到该属性。对象__proto__的默认值是
Object.prototype;而 Object.prototype.__proto__ = null 意味着继承链的终结。
只有函数对象具有prototype对象。
var o = new Obj(); 解析为: var o = {}; o.__proto__ = Obj.prototype; Obj.call(o);
原文:http://www.cnblogs.com/rhinoxy/p/5929961.html
内容总结
以上是互联网集市为您收集整理的JavaScript语言核心(一)-- prototype全部内容,希望文章能够帮你解决JavaScript语言核心(一)-- prototype所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。