js对象中的get和set方法的实现

JavaScript030

js对象中的get和set方法的实现,第1张

对象中有get和set方法,在读取和设定值的时候触发。vue中的数据绑定就是通过这个来实现的。

作用:

(1). 在对象内属性嵌套层级过多时,可以直接在对象下读取到对应属性,简化调用;

(2). 在get时可以任意设置属性名,可以不暴露组件内部属性名。

作用:

(1). 在对象内属性嵌套层级过多时,可以直接在对象下设置到对应属性,简化层级;

(2). set方法内的逻辑在赋值时会自动执行,可以监听属性值的改变

作用:

set方法可以监听对应属性值的改变,vue的数据动态绑定就是通过这个方法实现的,监听到vue实例中的data属性发生改变时,在set方法中触发模版重新渲染逻辑。

作用:

和方法1直接在对象中设置效果和原理相似

  var toString = ""

  for (var key in data) {

      if(!data[key]){

        delete data.key

      }else{

        var obj = data[key]

        if (Array.isArray(obj)) {

            var arrayString = obj.join(",")

            toString += key + "=" + arrayString + "&"

        } else {

            toString += key + "=" + data[key] + "&"

        }

      }

  }

 toString.substring(0, toString.length - 1).replace(/$/, "")

首先楼主要清楚Ajax与js的关系:

目前浏览器提交http请求的方式总体可以分为两类:

同步方式:例如表单提交、地址栏直接输入地址

异步方式:就是所谓的Ajax,可以简单理解为浏览器内置的一个JS对象,可以通过此对象在不改变当前浏览器地址的情况下,发送http请求,并且对返回的数据进行处理

所以,如果剔除Ajax的方式,javascript 就没有所谓的get调用了。

我猜测楼主只是想知道微信提供的这个 url 究竟是什么,去掉PHP相关元素后,这个地址是:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appId}&secret={secret}

其中 {appId} 和 {secret} 这两个是要进行替换的,把你的appId 和 secret 进行相应的替换就是最终可以往微信服务器发送的地址了,比如最终的 url 可能是这样的:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=AAAABBBB&secret=ABCDEFG

$res = json_decode($this->httpGet($url))从这一句可以看出,这个请求返回的是json格式的字符串,那把它转换成json对象后,怎么操作就是你自己的事情了。

楼主懂了吗,没懂还可以继续问。