基本类型的传递是复制一个新的值,会单独开发出一块新的内存
var a = 1
function show() {
var b = a + 100
console.log(b) // 101
}
console.log(show(a)) // 1
引用类型的传递是栈地址发生改变, 多个引用类型的地址会指向同一个堆内存
var a = {name: 'qihuanran', age: 13}
function show(a) {
a.age = 100
console.log(a.age) // 100
}
show(a)
console.log(a) // 100
遍历对象
var a = {name: 'qihuanran', age: 123}
for (let key in a) {
console.log(a[key]) // 'qihuanran', '123'
}
展开对象
查询对象中是否包含某个元素,不包含原形父级
Object.hasOwnProperty(‘name’)
查询对象中是否包含某个元素,包含原形父级
console.log('concat' in Object)
// true
指定原形继承
let a = {name: 'qihuanran'}
let b = {age: 12}
Object.setPrototypeOf(a, b)
console.log(a.age) // 12
console.log('age' in a) // true