JS 定义全局对象属性

JavaScript017

JS 定义全局对象属性,第1张

如果你的 var obj={abc:"123",def:"888" } 在一个函数块(function)里面,obj就不是全局变量哦,所以,如果你确定要obj定义一个全局变量,很简单,这样写:

obj={abc:"123",def:"888" }

这样,obj彻底是个全局变量了,哪里都可以用到!

如还有疑问,请联系我哦

简单的补个例子上,希望楼主能把addMethods的第二个参数大致有几种情况写清楚。

我再把我的答案补充完整

//判断类型的方法

var isType = function(object) {

  return Object.prototype.toString.call(object)

    .match(/^\[object\s(.*)\]$/)[1]

}

var addMethods = function(obj, arr){

    if(isType(obj) !== 'Object'){

        return alert('第一个参数必须是对象!')

    }

    //TODO

}

<script>

//初始化变量

var target = {}

//下面这段可以屏蔽

Object.defineProperties(target, {

sex: {

value: '男'

},

})

//对Object对象进行扩展方法

Object.prototype.setObjectAttrbute = function(key,value){

console.log('有人来设置你了,值为:' + value)

return this[key] = value

}

//再封装一层

Object.prototype.setAge = function(value){

return this.setObjectAttrbute("age",value)

}

//查看修改前属性

console.log(target.age)

//执行方法,两种方法结果一样

console.log(target.setObjectAttrbute("age",99))

console.log(target.setAge(99))

//查看新的target

console.log(target)

</script>