js this使用场景是什么

js this使用场景是什么,第1张

this 单独存在都是没有意义的

他只有在函数执行时才会有相应的意义

比如 函数直接执行 func()这种 this是指向window,

objfunc() 这种指向是obj

大约有五六种情况需要掌握

我们可以使用call bind apply等方法显示修改this指向 或者使用箭头函数避免一些this丢失的情况 你可以搜一下相关资料

要解决你的问题,可以是在方法外面声明一个全局变量,所有方法均可以调用这个变量。

更好的方式是使用面向对象的编程,将你的方法和需要外部调用的参数封装成对象(或者称为类)。

举例:

用构造函数声明对象Car的结构

function Car(sColor) {

thiscolor = sColor; //颜色属性

//对象一个方法,用来获取颜色

thisgetColor = function() {

return thiscolor;

};

//你可以任意添加其他的属性和方法

}

//创建对象Car的两个实例

var Car1 = new Car("red");

var Car2 = new Car("blue");

这样你就可以在任意时候对Car1或者Car2中的颜色属性进行改变并查看

现在使用Car1getColor()会获得字符串值"red"

你在其他任何方法中执行Car1color = "green";

再使用Car1getColor()会获得字符串值"green"

这样封装好的对象,其属性的值可以被其他的方法任意调用和修改,不知道能不能解决你的问题。

Backbone 最适合的应用场景是单页面应用,并且页面上有大量数据模型,模型之间需要进行复杂的信息沟通。Backbone 在这种场景下,能很好的实现模块间松耦合和事件驱动。 其他适用产品还有微博,网易微博的前端设计也是和 Backbone 类似的一个结构。

Backbone 的优点和一些经验 Tip:

View 的划分将页面上的视图元素解耦,粒度细化。View 间通过事件和 Model 通讯,避免了 DOM 事件的滥用。

Model 和 Restful 的通讯方式对于后端人员非常友好。

MVC 架构清晰, 我有个常年写 Java 没写过 JS 的同事看 Backbone 很快就了解了整体设计,虽然这时候他还是不会写 JS。

Collection/Model 抽象了以前杂乱的 AJAX 请求,CRUD 请求变得非常非常方便。

强烈建议 View -> Model 单向依赖,世界会美好很多。

配上一个模块化加载器例如 SeaJS 会很爽。

Backbone 的一些缺点,或者说一些尚未实现的 Feature:

Model 层比较简单,如果要支持 One-To-One 或者 One-To-Many 等复杂数据关系时有些力不从心。还有 一个 Model 只能属于一个 Collection 这个设计,页面复杂的时候会很受局限。

Model 只有基本的 CRUD *** 作,不能很好的扩展,Backbonesync 方法写的不太灵活,要想扩展就得重写 sync 方法。

View 层没有很强的 Page 管理机制,比如通过 URL 切换改变整个页面时,页面上尚存的 View 如何处理?直接销毁的话,是否要销毁关联的 Model、Collection?Cache 住?如何管理 Cache?

内存管理需要比较小心,缺乏机制避免创建重复 Model。

extends override 父类方法的时候得写一串的 SuperClassprototypesomeMethodapply 什么的,就不能实现个 _super 方法么……

对调试非常不友好。

作者有代码洁癖(也是加分项),this$el 大家呼唤了这么久才加上,估计今生也看不到 this_super。

更新慢。

总体来说 Backbone 还很轻,框架很漂亮但是有些细节还比较粗糙。用之前要做好对 Backbone 进行大量扩展甚至 Hack 的准备。

以上就是关于js this使用场景是什么全部的内容,包括:js this使用场景是什么、js里面怎么在同一场景中的一个层调用另一个层的方法、Backbone.js 的最佳应用场景有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9503853.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存