gpt4 book ai didi

javascript - 检查传递的参数是否为 Backbone.js View 或命令

转载 作者:行者123 更新时间:2023-11-30 15:37:46 25 4
gpt4 key购买 nike

检查传递的参数是否为 Backbone.js View 或命令。

我将主干 View 作为参数传递给另一个主干 View 。

我需要测试传递的函数是否是 View ,而不是其他类型的函数,例如命令。

到目前为止我想出的是这样的:

//content is the passed function
if (typeof content === 'function') {
//do foo
}

当你传递一个函数时,这个条件为真,这对命令和 View 都是真。

所以我需要这样的东西:

if(view) {
//do foo
} else if(command) {
//do bar
}

Backbone View 是否有任何我可以检查的独特属性?

谢谢!

最佳答案

作为mentionned by kawashita86 ,您可以使用 instanceof 来测试函数是否属于原型(prototype)链上某处的特定类型。

var MyViewType = Backbone.View.extend({}),
myView = new MyViewType();


console.log("myView instanceof Backbone.View:", myView instanceof Backbone.View);

var MyOtherViewType = MyViewType.extend({}),
myOtherView = new MyOtherViewType();

console.log("myOtherView instanceof Backbone.View:", myOtherView instanceof Backbone.View);
console.log("myOtherView instanceof MyViewType:", myOtherView instanceof MyViewType);
console.log("myOtherView instanceof MyOtherViewType:", myOtherView instanceof MyOtherViewType);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>

更多信息:

关于javascript - 检查传递的参数是否为 Backbone.js View 或命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41260548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com