我正在尝试Object.setPrototypeOf重新设置已转换为 JSON 并返回对象的对象的原型。然而,instanceof似乎并没有按照我预期的方式工作:
class Foo {}
const obj = {};
Object.setPrototypeOf(obj, Foo);
console.log(obj instanceof Foo);Run Code Online (Sandbox Code Playgroud)
为什么会这样呢?据我所知,instanceof工作基于将给定对象的原型与引用的类进行比较。应该有不同的方法吗?
我可以vue 2简单地只是
import Vue from "vue"
Run Code Online (Sandbox Code Playgroud)
然后执行以下操作
if (!(myComponent instanceof Vue)) return
Run Code Online (Sandbox Code Playgroud)
有办法做到吗Vue3?
Object[] o = new Object[]{};
System.out.println(o instanceof Cloneable);
Run Code Online (Sandbox Code Playgroud)
这表示为o/p.我不明白为什么?
我有一些计件工作由不同的自定义(源代码不可用)框架完成,这些框架可以传回Map实例.不幸的是,这些框架在返回的Map实例中并不一致,这些实例已用Collections.unmodifiableMap包装.为了确保在我的代码中更高程度的不变性(为了更容易的多线程使用),我在这些框架返回的任何内容上统一调用了Collections.unmodifiableMap.
Map<String, Record> immutableMap = framework.getRecordsByName();
//does this created a nested set of unmodifiableMap wrapper instances?
this.immutableField = Collections.unmodifiableMap(immutableMap);
.
.
.
Map<String, Record> maybeImmutableMap = framework.getRecordsByName();
//is there some means to get instanceof to work?
if (!(maybeImmutableMap instanceof Collections.UnmodifiableMap))
{
this.immutableField = Collections.unmodifiableMap(maybeImmutableMap);
}
Run Code Online (Sandbox Code Playgroud)
我意识到在这部分设计中我可能会遇到性能问题.在某些情况下,我正在调用Collections.unmodifiableMap传递一个实例,该实例已经由同一个调用的框架包装.而且我的重新包装可能会在整个实例中引起额外的方法调用.
似乎使用"instanceof Collections.UnmodifiableMap"不起作用.如果我当前引用的Map实例需要被包装,我找不到任何检测方法(不包括在这种情况下不是选项的反射 - 方式太慢).
问题:
我还在学习JavaScript,阅读书籍,使用FireBug,进行实验.
我很惊讶并且坚持下面的事情.
有功能声明:
var t = function (args){
...
}
Run Code Online (Sandbox Code Playgroud)
假设它是varargs.
我称之为:
<body onload="t({to:100,from:0})">
Run Code Online (Sandbox Code Playgroud)
from通过调用可以获得参数值:
args.from
Run Code Online (Sandbox Code Playgroud)
结果typeof args.from是number
看起来很健康.
注意: number是小写的
我对什么是实例感兴趣args.from.
实际上,无法获得其实例值.
尝试:
args.from instanceof Number
args.from instanceof String
args.from instanceof Object
args.from instanceof Boolean
Run Code Online (Sandbox Code Playgroud)
它不是Number- 非常奇怪
它不是Object- 很奇怪
它不是String- 那没关系
它不是Boolean- 那没关系
它既不是null也不'undefined'- 看起来不错.
它是什么?
我在创造一个游戏.游戏有GameMap.为了跟踪GameMap上的事物状态,我想为每个事物创建ArrayLists.问题是,我不想创建单独的方法来添加或从每种类型的ArrayList中删除项目.我是新手,所以当然我能想到的第一件事是'instanceof'运算符.
请记住,目前,GameMap是一个离散类,而不是接口或抽象类.目的是在初始化游戏时实例化GameMap对象.
public class GameMap {
//GameMap has a name
private String mapName;
//GameMap has rooms
private ArrayList<Room> roomsOnMap;
//GameMap has items
private ArrayList<Item> itemsOnMap;
//GameMap has people
private ArrayList<Person> peopleOnMap;
//construct GameMap with rooms, items, and people
private GameMap(String mapName, ArrayList someRooms, ArrayList someItems, ArrayList somePeople)
{
this.mapName = mapName;
this.roomsOnMap = someRooms;
this.itemsOnMap = someItems;
this.peopleOnMap = somePeople;
}
public void addObject(Object o)
{
//HOW DO I AVOID THIS?
if(o instanceof Room)
{
roomsOnMap.add((Room) o);
}
else if(o …Run Code Online (Sandbox Code Playgroud) 我正在为MiniJava编写TypeChecker,而ExpOp需要检查两个输入的表达式是否都是Integer使用加号,减号,次数.
如何在if包含表达式的语句中编写一行代码,并检查它们是否都是(instanceof)的实例Integer?
这就是我现在拥有的:
n.e1.accept(this) n.e2.accept(this) instanceof Integer
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助.
在PHP中有两个类:
class parentTroll {...}和class troll extends parentTroll {...}
然后有一个对象 $troll = new troll();
怎么检查$troll instanceof parentTroll?此行现在返回false.
为什么AS告诉我这(ob instanceof Button)总是false?
此外,它给了"暗示" 'Cast to Button'.如果我接受提示,没有任何改变.
void setTextSizeForField(int textSize, Object ... obs){
for(Object ob: obs)
if (ob instanceof EditText) ((EditText) ob).setTextSize ( textSize );
else if (ob instanceof TextView) ((TextView) ob).setTextSize ( textSize );
else if (ob instanceof Button) ((Button) ob).setTextSize ( textSize/10 );
}
Run Code Online (Sandbox Code Playgroud)
消息的全文是:
Condition 'ob instanceof Button' is always 'false' less... (Ctrl+F1)
This inspection analyzes method control and data flow to report possible conditions that are
always true or false, expressions …Run Code Online (Sandbox Code Playgroud) 为什么Java中的这行代码不能打印消息?
System.out.println("a instanceof String:"+a instanceof String);
Run Code Online (Sandbox Code Playgroud)
为什么它只是打印真实而不是之前的字符串???
instanceof ×10
java ×5
javascript ×2
arguments ×1
arraylist ×1
arrays ×1
cloneable ×1
collections ×1
ecmascript-6 ×1
function ×1
integer ×1
map ×1
php ×1
prototype ×1
typeof ×1
unmodifiable ×1
vue.js ×1
vuejs3 ×1