JavaScript 引用数据类型:
对象 字面量------ {} 。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
在JavaScript当中所有的变量都可以当作对象使用。(当作对象使用,意味着拥有属性和方法)---------》万物皆对象。
但是除两个例外 null 和 undefined 。
例如:
[1,2,3].toString() -------》 "1,2,3"
function Swt(){ };
Swt.name = "博客园";
Swt.name ----》 "博客园"
但是特殊的数据类型:Number的字面量
官方给出解释 Number字面量不能当作对象使用是因为JavsScript的解析器的一个错误。因为它会将点操作符解析成数字字面量的一部分。
但是 123..toString() -----或者 ----- 123 .toString() ------再或者------ (123).toString() --------------》都会正常解析。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
对象作为JavaScript语言的一种引用数据类型。
他的作用超乎你的想象。
对象可以作为----哈希表----使用!!! -------因为数据格式的特殊。
对象特点保存 键于值得对象关系。
首先对象的创建方式之一:
字面量创建对象 var obj = {}; 字面量创建对象将会从Object.prototype继承下面,没有任何的自定义属性。
例如:
var swtObj = {
name:"博客园",
age:"永远" + 18,
changHandle:function(){
}
};
访问对象属性的方式:(点操作符或者中括号操作符)
1、点操作符
swtObj.name; ---------》 "博客园"
swtObj['name'; ----------》 "博客园"
-----------------------------------------------------------------
var offer = "程序员";
swtObj[offer]; ----------》 "程序员"
-----------------------------------------------------------------
swtObj.123; -----------》 报错 --- 属性名,键(key)不能为number类型
swtObj['123']; -----------》 正常解析。
两者访问对象属性都可以,但是中括号操作符功能更强一些:比如动态设置属性,属性名有效性(空格,js关键字)
删除属性的方式:
真正意义上的删除也是唯一的删除方法是使用 delete 操作符。
注意 将对象属性设置为 undefined 或者 null 并不是真正意思上的从对象上删除属性,而仅仅是断开属性和值的关联。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
对象原型:
这里需要注意的是:
JavaScript中对象的原型和原型链 与 ES6中 class类的原型和原型链的区别!!!
JavaScript中对象使用的是 ----- prototype ----- 原型模型。
官方给我出解释:
虽然这经常被当作是 JavaScript 的缺点被提及,其实基于原型的继承模型比传统的类继承还要强大。 实现传统的类继承模型是很简单,但是实现 JavaScript 中的原型继承则要困难的多。
补充:
JavaScript为何难:
原因之一是 JavaScript 是唯一一个被广泛使用的基于原型继承的语言。
-------------------------------------------------------------------------------------------------------------------------------
不同之处:
1、 JavaScript 使用原型链的继承方式。