No, not as is, because bash is doing this seamlessly and those variables aren't really set on the command line (the command line to ./foo.sh).
When bash sees the command line:
var1=7 x=a ./foo.sh arg1 arg2
it simply runs ./foo.sh arg1 arg2 with those variables already set for it, effectively the same as if you had done:
( export var1=7; export x=a; ./foo.sh arg1 arg2 )
except possibly for the number of processes created.
The process running .foo.sh has no idea how those variables were set, it only sees the bit without the variable setting as it's command line.
envbetween the parent and within the script inside