为什么“String.prototype ={}“;赢得了# 39;t工作
Why "String.prototype={}" won't work?
我用javascript写了下面的代码:
String.prototype = {
a : function() {
alert('a');
}
};
var s = "s";
s.a();
我希望它警报一个a
,但它报告:
s.a is not a function
为什么?
您似乎正在用您的对象替换String
的整个 prototype
对象。我怀疑那根本行不通,更不用说你的意图了。
prototype
属性是不可写的,所以对该属性的赋值会无声地失败(@ fracemodrhamidi )
使用常规语法也可以:
String.prototype.a = function() {
alert('a');
};
var s = "s";
s.a();
你必须这样写:
String.prototype.a = function(){
alert("a");
};
var s = "s";
s.a();
小提琴:http://jsfiddle.net/PNLxb/
相关文章:
- Array.prototype.stice.call()的内部工作
- Date.prototype.get日期;不能在Safari中工作
- Array.prototype.slice.call如何在getElementsByClassName的重新创建中工作
- Function.prototype.call.bind 是如何工作的
- Prototype 1.7 Object.extend 在原型类中使用时无法正常工作
- Array.prototype.forEach在IE8中不工作
- prototype在JavaScript中是如何工作的
- 重新实现Array.prototype.slice的JavaScript谜题未按预期工作
- 为什么“String.prototype ={}“;赢得了# 39;t工作
- 为什么调用array.prototype. foreach .call()时将数组设置为THIS对象不能工作?
- js Array.prototype.filter.call() - 有人可以解释我这段代码是如何工作的
- 当thisArg和后续的arg是同一个数组的一部分时,function.prototype.apply是如何工作的?
- jQuery和prototype不能与Array.prototype.reverse一起工作
- 这个Array.prototype.find()是如何工作的?
- 原型链中的函数解析将如何为Object.prototype作为构造函数工作
- 带有promise.prototype.的Axios最终无法工作
- poly .prototype.splice不像预期的那样工作
- “Array.prototype.slice.call”是如何工作的
- Joomla + jquery + prototype.不能让noConflict工作
- Array.prototype.filter(Number) 中的“数字”是如何工作的