用babel6测试es6中的Symbol.hasInstance,与babel官网的repl上的运行结果不一致,什么原因?
发布于 1 天前 作者 Yann-Wang 119 次浏览 来自 问答

测试环境: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

回到顶部