查阅视频:
我取不来名字的https://space.bilibili.com/320467466
在openwrt的luci界面开发中,用到的这个E()函数,其功能是在网页界面创建各种各种视图效果,如按钮,文字等等。
其原函数:
function E(){
return L.dom.create.apply(L.dom,arguments)
}
这个E()函数定义实质上是调用了L.dom.creaate.apply(L.dom,arguments)
这里的L实质上代表了Leaflet库,在Leaflet中,L是对Leaflet对象的简称,通常作为前缀使用,以表示某个方法或类属于Leaflet库。
apply()是javescript中的一个方法。作用是能够编写用于不同对象的方法。
var person = { fullName: function() { return this.firstName + " " + this.lastName; } } var person1 = { firstName: "Bill", lastName: "Gates", } person.fullName.apply(person1); // 将返回 "Bill Gates"
在上述例子中,person
的 fullName
方法被应用到 person1
this是什么意思? this是javescript里的关键字
this是函数的的自有变量,指向了保存在堆中的某个对象的数据
那么对象在javescript中是怎么定义的?
zaijavescript中对象由两部分组成:一个是对象的名字(见图1)
一个是对象的名字所具有的数据(见图二)
图1
图2
对象的名字存放在栈中,对象的数据存放在堆中
判断this指向那个对象的数据(优先级由高到低):
1.new关键字创建的对象
2.通过 call / apply / bind 方法可以操纵this指向我们给到的对象
3.函数作为A对象的方法来调用,函数的this指向就是A对象
4.this指向undefined 箭头函数没有this this通过词法作用域从外层获取
标签:函数,指向,dom,对象,Leaflet,------,apply,luci,openwrt From: https://blog.csdn.net/zy_666_king/article/details/140269676