用babel6测试es6中的Symbol.hasInstance,与babel官网的repl上的运行结果不一致,什么原因?
测试环境:ubuntu 14.04 node v6.3.0 .babelrc : { “presets”: [ “es2015”, “stage-2” ], “plugins”: [] } 测试代码hasInstance.js:
function Foo(greeting) {
this.greeting = greeting;
}
Object.defineProperty( Foo, Symbol.hasInstance, {
value: function(inst) {
return inst.greeting == "hello";
}
} );
var a = new Foo( "hello" ),
b = new Foo( "world" );
console.log(a instanceof Foo); // true
console.log(b instanceof Foo); // false, 此处我的执行结果为true,但babel官网的repl上的执行结果是false, 什么原因?
全局安装babel-cli,本地安装babel-polyfill, 执行 babel ./src/hasInstance.js -o ./lib/hasInstance.js 在./lib/hasInstance.js中加入 require(“babel-polyfill”); 执行: node ./lib/hasInstance.js 结果: true true