【发布时间】:2015-10-07 16:23:33
【问题描述】:
假设在 iOS 中:
@implementation SomeClass
- (void)sayHello {
NSLog(@"Hello, World!");
}
@end
...
context[@"NativeObject"] = [SomeClass new];
然后在Javascript中:
var test = {};
test.__proto__ = NativeObject;
为什么我检查的时候会这样:
!!NativeObject; //returns true
test.__proto__ === NativeObject; //returns false
test.__proto__ === undefined; //returns true
"sayHello" in test; //returns true
Object.getOwnPropertyNames(test).indexOf("sayHello") == -1; //returns true
既然最后 2 次测试表明有原型,为什么第 2 次和第 3 次测试说没有原型? JavascriptCore 是否损坏了,还是我遗漏了一些关于其实现方式的关键信息?
【问题讨论】:
标签: javascript ios prototype javascriptcore