/*通过闭包实现属性私有化*/
var name = '456';
var init = (function () {
var name = '123';
function callName() {
console.log(name);
}
return function () {
callName();
}
}())
init(); //这里打印123
//实现方法的连续执行
var hu = {
smoke: function () {
console.log("smoking is cool");
return this;
},
like: function () {
console.log('like reading');
return this;
}
}
hu.smoke().like();
/*表示对象属性*/
var object = {
age: '12'
}
/*可以使用下面两种形式*/
object.age
//object['age']
var deng = {
wife1: {name: 'liu'},
wife2: {name: 'zha'},
sayWife: function (num) {
return this['wife' + num];
}
}
/*
对象的枚举*/
var obj2 = {
name: 'zhang',
sex: 'nv',
height: '182',
_proto_: 'deng'
}
//in 判断能不能调用这个属性
for (var prop in obj2) {
/*console.log(prop)*/
//判断属性是否是自己的,是自己的打印出来
if (obj2.hasOwnProperty(prop)) {
console.log(prop + ':' + obj2[prop]);
}
}
function Person() {
}
//A instanceof B :A对象是不是B构造函数构造出来的(看A对象的原型链有没有B的原型)
var person = new Person();
console.log(person instanceof Person)
/*
区分数组和对象的方法*/
obj2.constructor
obj2 instanceof Object
/*Object.prototype.toString().call([]);*/
//这里补充一个知识点
var num = (1,2); //在调用num的时候打印的是2