对象的创建方法:
- var obj = {};
构造函数:
1》系统自带的构造函数:new Object();
var obj = new Object();
2》自定义:
function Obj (){}
var obj = new Obj();
为了区分函数和构造函数让人能一眼看出来,约定俗成构造函数要使用大驼峰命名法,即第一个词首字母也要大写:
- 小驼峰:theFirstName
- 大驼峰:TheFirstName
示例:
function Student(name,age,grade){
this.name = name;
this.age = age;
this.grade = grade;
}
var stu = new Student('xiaohai',19,2);
删除属性:delete _ . _ (删除谁的什么属性)
js一切皆对象
书上明确告诉我们,原始值不是对象。原始类型不会有属性和方法。
还是直接看例子:
var num = 4;
num.len = 3;
console.log(num.len);
说好的,原始值不能给加属性加方法,但是实际上不会报错,
打印结果是undefined
原因:
先引申一些:
var : num = new Number(123);
这句代码会制造出一个对象类型的num = 123;
一样的:
var string = new String(“123”);
…
回到题目
num . len = 3;
本身num作为原始值,不能加属性的,但是本着尽量不报错的原则,会涉及到包装类,此时会隐式的改写为: new Number(4).len = 3;
为了完成代码的实现,自动加了对象类型,但是用完就会删掉,再下一行代码要打印,又会实现隐式转换new Number(4).len,但是这次跟上次的转换毫无关系,即找不到这个属性。找不到所以结果undefined.
希望有所帮助,谢谢访问!