<body>
<script type="text/javascript">
var obj = {
name : 'object-name',
sayName : function () {
alert(this.name);
}
};
obj.sayName(); // object-name
var test = function () {
this.message = 12;
}
test();
alert(window.message); //12
alert(self.message);//12
alert(this.message);//12
</script>
</body>
<body>
<script type="text/javascript">
var message = "hi~~~";
var test = function () {
alert(this.message);
alert(self.message);
}
test();
// hi~~~
// hi~~~
</script>
</body>
<body>
<script type="text/javascript">
var name = "global";
function Person () {
this.name = "someone";
}
var sam = new Person();
alert(sam.name); // someone
alert(window.name); //global
Person();
alert(window.name); // someone
</script>
</body>
<body>
<script type="text/javascript">
var sayName = function () {
alert(this.name);
}
var peter = {
name: "peter"
}
sayName.call(peter); //peter
</script>
</body>
<body>
<script type="text/javascript">
function Person1 () {
this.name = "person1";
this.sayName = function () {
alert(this.name);
}
}
function Person2 () {
this.name = "person2";
}
var sam = new Person2();
alert(sam.name);//person2
Person1.call(sam);
sam.sayName(); //person1
alert(sam.name);//person1
</script>
</body>
<body>
<script type="text/javascript">
function class1 () {
this.message = "yeah";
}
function class2 () {
this.sayMessage = function () {
alert(this.message);
}
}
class2.call(class1);
alert(class1.sayMessage); /*function () { alert(this.message); } */
class1.sayMessage(); //undefined
var obj1=new class1();
//obj1.sayMessage();//
class1.sayMessage.call(obj1);//yeah
</script>
</body>
<body>
<script type="text/javascript">
var message = "hi";
function class1 () {
this.message = "yeah";
}
function class2 () {
this.message = "hello";
this.sayMessage = function () {
alert(this.message);
}
}
class2.call(class1);
alert(class1.sayMessage);// function
class1.sayMessage(); // hello
class1.message = "msg";
class1.sayMessage(); //msg
</script>
</body>
<body>
<script type="text/javascript">
function Class1(){
this.showTxt = function(){alert(this.name)}
}
function Class2(){
this.name = 'class2';
}
var class1 = new Class1();
class1.showTxt.call(Class2);//Class2 (类Class2有它自己的name属性)
class1.showTxt.call(new Class2());//class2
alert(Class2.showTxt);//undefined
Class1.call(Class2);
alert(Class2.showTxt);//function(){alert(this.name)}
</script>
</body>