删除对象的属性
delete obj.属性
若属性值为undefined则会报出undefined不会报错
返回true
对象的创建方法
1. var obj = { } plainObject 对象字面量(对象直接量)
2. 构造函数
1)系统自带的构造函数 new Object ();,
2)自定义 规则 命名(大驼峰命名法)
构造函数的内部原理
扫描二维码关注公众号,回复:
2775531 查看本文章
1.在函数体的最前面隐士=式的加上this = {};
2.执行 this.xxx = xxx;
3.隐式的返回this
function Student (name, age, sex)
{
// var this = {
// name :"";
// age : "";
// sex : "";
// }
this.name = name;
this.age = age;
this.sex =sex;
// return this
}
包装类 (Number String Boolean)
原始值没有属性和方法
var num = 4;
num.len = 3;
//new Number(4).len = 3; delete
console.log(num.len);//undefined
var str = 'abcd';
str.length = 2;
console.log(str);//abcd
var number = [1,2,3,4,5];
number.length = 2;
console.log(number);//[1,2]
undefined和unll没有属性值,不能添加 undefined.属性=xx
例题
function test(){
var arr = [];
for(var i = 0;i < 10; i++)
{
arr [i] = function () {
document.write(i + " ");
}
return arr;
}
}
var myArr = test();
for(var j = 0;j < 10; j++)
{
myArr [j]();
}
结果 全部都是10
原因: 在函数执行test的时候,arr[i]l里面都存的函数,但是没有执行里面的函数,执行myArr的时候,才回去找i的值,这个时候i已经变成了10
function test(){
var arr = [];
for(var i = 0;i < 10; i++)
{
(function(j){
arr [i] = function () {
document.write(i + " ");
}
}(i))
return arr;
}
}
var myArr = test();
for(var j = 0;j < 10; j++)
{
myArr [j]();
}
若把里面的函数变成立即执行函数,就会得到0 1 2 3 4 5 6 7 8 9