【发布时间】:2017-09-07 08:47:31
【问题描述】:
我们想要一个可以将方法应用于输入对象的函数。
首先,我们创建一个函数。
$ = function () { /* Constructor Code */ };
然后,我们添加一个方法。例如,type。该方法将使用此函数:
function () { return toString.call(this).slice(8, -1);
最后,我们测试这个函数,看看我们是否得到了正确的输出。这是我们希望看到的:
$("test"); // Output: "test"
$("test").type(); // Output: "String"
$(document.body).type(); // Output: "HTMLBodyElement"
输出与输入的唯一区别是方法的应用。
使用Object.addProperties 不起作用,因为它将输入转换为对象:
$("test").type(); // Output: "Object"
此外,使用eval 相关的方法也不起作用,因为某些对象不会转换为字符串:
$(document.body).type(); // Error: Can't convert element to string!
手动将对象的属性添加到对象也是如此。
$("test").type(); // Can't apply function to literal string!
问题是,我们做什么?
【问题讨论】:
标签: javascript methods constructor properties prototype